1 / 85

Architecture Design Open Source Frameworks

Agenda. Concepts of architecture designComponent ModelEJB

valentine
Download Presentation

Architecture Design Open Source Frameworks

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


    1. Architecture Design & Open Source Frameworks Dr. Yan Pan School of Software Sun Yat-sen University

    2. Agenda Concepts of architecture design Component Model EJB & J2EE Web Service & SOA Open source and architecture

    3. Agenda Concepts of architecture design Component Model EJB & J2EE Web Service & SOA Open source and architecture

    4. What is Architecture? A set of structuring principles and service-level requirements that allows subsystems to live independently but not inconsistently within a larger system as a whole. Role of architect: Address the service-level requirements for the system and make designers and programmers productive as soon as possible.

    5. Whats Architectural Design? Design a suitable architecture for the system under discussion (SuD) according to some structural principles Choose suitable global strategies/policies to meet the quality requirements of SuD Choose suitable interaction and integration strategies with external systems

    6. Service Level Requirements Non-Functional System Requirements: Availability: service is accessible Reliability: integrity and consistency of app and its transactions Performance: good response time Scalability: can support increased load without changes to system Extensibility: able to add new functions, without affecting other functions Maintainability: able to correct flaws in existing function Security: system cant be compromised

    7. Example Architecture Requirements E-Commerce App Many clients Lots of reading, less updating Need High Performance and Scalability for Reading Data Finance Intranet App Fewer clients, Low concurrency High transaction isolation level, need high consistency Reliability of Updates to DB most important

    8. Layering Architecture Layers are abstractions of underlying implementation Each Layer hides implementation details of layer below Advantages: Changes can be isolated in specific layer; Easier development and maintenance Does not require developer to know complex details of distributed protocols, concurrency, transactions, etc.

    9. Values & Goals We Should keep in Mind in Architecture Design Simplicity Productivity The importance of object orientation The primacy of business requirements The importance of empirical process The importance of testability

    10. Agenda Concepts of architecture design Component Architectures EJB & J2EE Web Service & SOA Open source and architecture

    11. J2EE Introduction

    12. A specification, not a product J2EE is a specification, not a product. J2EE specifies the rules of engagement that people must agree on when writing enterprise software. Vendors then implement the J2EE specifications with their J2EE-compliant products.

    13. The mission of J2EE To provide a platform-independent, portable, multi-user, secure, and standard enterprise-class platform for server-side deployments written in the Java language.

    14. Technologies in J2EE Enterprise JavaBeans (EJB). Java Remote Method Invocation (RMI) and RMI-IIOP. Java Naming and Directory Interface (JNDI). Java Database Connectivity (JDBC). Java Transaction API (JTA) Java Transaction Service (JTS). Java Messaging Service (JMS). Java Servlets. Java Server Pages (JSPs). Java IDL. JavaMail. J2EE Connector Architecture (JCA). The Java API for XML Parsing (JAXP). The Java Authentication and Authorization Service (JAAS).

    16. EJB Introduction

    17. EJB Standard It is a component architecture for deployable server-side components in Java. It is an agreement between components and application servers that enable any component to run in any application server.

    18. Main Values of EJB It is agreed upon by the industry. Those who use EJB will benefit from its widespread use. Because everyone will be on the same page, in the future it will be easier to hire employees who understand your systems, learn best practices to improve your system , partner with businesses ,and sell software .The concept of train once, code anywhere applies. Portability is easier. The EJB specification is published and available freely to all. Since EJB is a standard, you do not need to gamble on a single, proprietary vendors architecture. And although portability will never be free, it is cheaper than without a standard. Rapid application development. Your application can be constructed faster because you get middleware from the application server. Theres also less of a mess to maintain.

    19. EJBs tasks EJBs are specifically used to help solve business problems. They might perform any of the following tasks. Perform business logic. Access a database. Access another system.

    27. Types of EJBs Session Bean Stateless Stateful Entity Bean Message Driven Bean

    28. J2EE Best Practice

    29. J2EE Blueprints J2EE Platform contains a rich set of APIs, and there are more than one way to do the same thing. Similar problems should leverage time-tested solutions Suns J2EE Blueprints provides answer and examples of best practices

    30. Blueprint Choices for Components in Different Tiers Tiered Architecture Client tier HTML clients for user Web access XML for data externalization Web server tier JSP for dynamic content generation Application server tier EJB for business objects

    31. MVC Structure View in Web-tier JSP for presentation layout Custom tags and JavaBean components for presentation logic Controller in Web/ EJB tier Servlets for dispatching Session bean for control within business objects Model in EJB tier Session beans for business services, processes and rules Entity beans to maintain model data

    32. Value Objects Use Value Objects to hold data and pass values to EJBs Should be serializable Java object Reduce network traffic and reduce load on EJBs Example: AccountEJB getAccountDetails(AccountDetails ad); AccountDetails has name, address, username, etc.

    33. Data Access Object (DAO)

    34. Guidelines on Database Access Primarily done in EJB tier Can do that from Web tier directly if: Access to data is read-only and non-transactional High performance is very important Always try to use connection pooling for better performance

    35. Session Bean Faade Pattern Simple single point of entry to multiple entity beans Manage services, process, workflow for client Reduce remote calls to server Shield client from entity beans

    36. Controllers Web Controllers Request processing: translate incoming requests to business events, and dispatch them to specific handlers Response redirection EJB Controllers Not bound to single client type Manages interaction of EJB components used in a user session

    37. JSP and Servlets Use servlets for dispatching between the Web tier and EJB tier Request processing: use servlet and/ or JavaBeans Data validation Use JSP for response generation Displaying HTML, XML

    38. Guidelines to write your architecture design document Layering strategies Layers and their functions Logical package diagram DB/application/web servers, middleware, frameworks etc. Architectural design patterns (MVC, controller etc.) Design constraints (optional) Persistence (performance, reliability) Transaction (reliability) Clustering (scalability) Caching (performance) Concurrency (reliability) Access control (security) More

    39. Agenda Concepts of architecture design Component Model EJB & J2EE Web Service & SOA Open source and architecture

    41. Business Constant: Change Slide timing: 1-3 minutes Instructors notes: The groundwork for SOA begins with a discussion of business change. Point out that change is really the only thing constant about the business environment. Highlight the fact that technology change is only one of many forces of change that business faces today. Presentation suggestion: increase learner interaction by asking them to identify which of these are realities at their companies. Any points they can add? Key Concepts: The groundwork for SOA begins with a discussion of business change. Point out that change is really the only thing constant about the business environment. Highlight the fact that technology change is only one of many forces of change that business faces today. Businesses are continuously changing thats the nature of business There are many factors that impact change, including business, technological, environmental, and personal Set the groundwork that were dealing with technology in the context of continuous, and often unpredictable, change. Presentation suggestion: increase learner interaction by asking them to identify which of these are realities at their companies. Any points they can add? Questions to Address: This is a fairly obvious slide, but technical folks might not be aware or connected to the problems of the business. Slide timing: 1-3 minutes Instructors notes: The groundwork for SOA begins with a discussion of business change. Point out that change is really the only thing constant about the business environment. Highlight the fact that technology change is only one of many forces of change that business faces today. Presentation suggestion: increase learner interaction by asking them to identify which of these are realities at their companies. Any points they can add? Key Concepts: The groundwork for SOA begins with a discussion of business change. Point out that change is really the only thing constant about the business environment. Highlight the fact that technology change is only one of many forces of change that business faces today. Businesses are continuously changing thats the nature of business There are many factors that impact change, including business, technological, environmental, and personal Set the groundwork that were dealing with technology in the context of continuous, and often unpredictable, change. Presentation suggestion: increase learner interaction by asking them to identify which of these are realities at their companies. Any points they can add? Questions to Address: This is a fairly obvious slide, but technical folks might not be aware or connected to the problems of the business.

    42. Weve had IT challenges for years Slide timing: 1-2 minutes Instructors notes: This is a representation of the complexity of systems, applications and databases needing to be integrated. It should be a familiar picture to all participants. Key Concepts: This is a representation of the complexity of systems, applications and databases needing to be integrated. It should be a familiar picture to all participants. But wait, these problems arent anything new. Weve had integration and connectivity problems since the very first day we had two systems in the enterprise. So, whats new? Integration and heterogeneity are long-lived, persistent problems SOA doesnt introduce these as new concepts EAI didnt introduce it, either Questions to Address: How long has integration been a problem in your company?Slide timing: 1-2 minutes Instructors notes: This is a representation of the complexity of systems, applications and databases needing to be integrated. It should be a familiar picture to all participants. Key Concepts: This is a representation of the complexity of systems, applications and databases needing to be integrated. It should be a familiar picture to all participants. But wait, these problems arent anything new. Weve had integration and connectivity problems since the very first day we had two systems in the enterprise. So, whats new? Integration and heterogeneity are long-lived, persistent problems SOA doesnt introduce these as new concepts EAI didnt introduce it, either Questions to Address: How long has integration been a problem in your company?

    43. but even after yesterdays promises Slide timing: 1-2 minutes Instructors notes: if you invest today, and if you spend a million dollars on my solution, then tomorrow your problems will be solved, and your new application architecture will be this nice, new, orthogonal architecture, in which the databases are lined up, application systems are lined up, all with this nice XML message bus running across the middle. In other words, everything will be solved, and this is the answer. But in reality, something different usually happens Key Concepts: This slide is a representation of a variety of solutions that promised to solve the problem of integration. It may refer to any of several solutions that promised to align previously scattered systems and databases, providing neat integration and firewall functionality. A typical story line: if you invest today, and if you spend a million dollars on my solution, then tomorrow your problems will be solved, and your new application architecture will be this nice, new, orthogonal architecture, in which the databases are lined up, application systems are lined up, all with this nice XML message bus running across the middle. In other words, everything will be solved, and this is the answer. But in reality, something different usually happens It seems that every new technology wave wants to introduce some new technology that will miraculously simplify the mess. This picture doesnt have any labels on purpose, since the bus could be EAI, Message Queues, ODBC, ESB, BPI, you name it the picture stays the same, but the acronyms and terms change. Nothing new. Its clear that products and new terms by themselves wont change anything Dont be fooled by the hype Questions to Address: What snake oil has your company purchased in the past that looks like this? And you say you STILL have integration problems? No surprise. Slide timing: 1-2 minutes Instructors notes: if you invest today, and if you spend a million dollars on my solution, then tomorrow your problems will be solved, and your new application architecture will be this nice, new, orthogonal architecture, in which the databases are lined up, application systems are lined up, all with this nice XML message bus running across the middle. In other words, everything will be solved, and this is the answer. But in reality, something different usually happens Key Concepts: This slide is a representation of a variety of solutions that promised to solve the problem of integration. It may refer to any of several solutions that promised to align previously scattered systems and databases, providing neat integration and firewall functionality. A typical story line: if you invest today, and if you spend a million dollars on my solution, then tomorrow your problems will be solved, and your new application architecture will be this nice, new, orthogonal architecture, in which the databases are lined up, application systems are lined up, all with this nice XML message bus running across the middle. In other words, everything will be solved, and this is the answer. But in reality, something different usually happens It seems that every new technology wave wants to introduce some new technology that will miraculously simplify the mess. This picture doesnt have any labels on purpose, since the bus could be EAI, Message Queues, ODBC, ESB, BPI, you name it the picture stays the same, but the acronyms and terms change. Nothing new. Its clear that products and new terms by themselves wont change anything Dont be fooled by the hype Questions to Address: What snake oil has your company purchased in the past that looks like this? And you say you STILL have integration problems? No surprise.

    44. we still have the same IT mess, only worse. Slide timing: 2 minutes Instructors notes: The storyline continues from the last slide: 10 years later your customer calls you and says things didnt exactly work out that way. Theyve grown as a business, theyve added numerous systems, theyve increased their dependence on technology, and theyve now got an architecture that looks like this and the question is why and how does that happen? What are the issues involved here? The complexity comes from the highly generalized nature of the packaged applications and the need to adapt and rapidly evolve to meet requirements in many different situations. While business application systems cope with the complexity of delivering business value, customer and industry practices are constantly changing. Disconnected silos of functionality are the reality customers live with. Integration is a fact of life for them today and in all likelihood will stay that way, as there are always new ways of doing business better or with different focus. Change is a constant. Business applications need to follow a different path in the future as innovation continues to drive customers in various ways. Instead of launching a monumental exercise of folding business capabilities into the existing solution, one should accept the fact that despite all efforts to be everything that a customers needs in one system, reality speaks against such possibility. Even SAP clearly the most integrated and complete business application system has abandoned that strategy for a more modular approach. The strategy for success is to accept a connected as opposed to a physically integrated environment of business functions that support integration from the start instead of as an expensive and cumbersome afterthought. Key Concepts: The storyline continues from the last slide: 10 years later your customer calls you and says things didnt exactly work out that way. Theyve grown as a business, theyve added numerous systems, theyve increased their dependence on technology, and theyve now got an architecture that looks like this and the question is why and how does that happen? What are the issues involved here? The complexity comes from the highly generalized nature of the packaged applications and the need to adapt and rapidly evolve to meet requirements in many different situations. While business application systems cope with the complexity of delivering business value, customer and industry practices are constantly changing. Disconnected silos of functionality are the reality customers live with. Integration is a fact of life for them today and in all likelihood will stay that way, as there are always new ways of doing business better or with different focus. Change is a constant. Business applications need to follow a different path in the future as innovation continues to drive customers in various ways. Instead of launching a monumental exercise of folding business capabilities into the existing solution, one should accept the fact that despite all efforts to be everything that a customers needs in one system, reality speaks against such possibility. Even SAP clearly the most integrated and complete business application system has abandoned that strategy for a more modular approach. The strategy for success is to accept a connected as opposed to a physically integrated environment of business functions that support integration from the start instead of as an expensive and cumbersome afterthought. Its clear that yesterdays approaches only add to todays complexities, not subtract from it. Whats needed are new approaches, not just more snake oil that adds to the stuff a company must now manage. Most technologies are now middleware for your middleware Will the middleware insanity ever end, or is this an endless loop of having to buy new integration stuff on top of the old stuff every time some new technology wave emerges? What will get us out of this mess? More technology or a new way of defining how systems are built and managed? Questions to Address: How do we know that technology alone wont solve the problem? What is evidence of this middleware-for your-middleware problem? Slide timing: 2 minutes Instructors notes: The storyline continues from the last slide: 10 years later your customer calls you and says things didnt exactly work out that way. Theyve grown as a business, theyve added numerous systems, theyve increased their dependence on technology, and theyve now got an architecture that looks like this and the question is why and how does that happen? What are the issues involved here? The complexity comes from the highly generalized nature of the packaged applications and the need to adapt and rapidly evolve to meet requirements in many different situations. While business application systems cope with the complexity of delivering business value, customer and industry practices are constantly changing. Disconnected silos of functionality are the reality customers live with. Integration is a fact of life for them today and in all likelihood will stay that way, as there are always new ways of doing business better or with different focus. Change is a constant. Business applications need to follow a different path in the future as innovation continues to drive customers in various ways. Instead of launching a monumental exercise of folding business capabilities into the existing solution, one should accept the fact that despite all efforts to be everything that a customers needs in one system, reality speaks against such possibility. Even SAP clearly the most integrated and complete business application system has abandoned that strategy for a more modular approach. The strategy for success is to accept a connected as opposed to a physically integrated environment of business functions that support integration from the start instead of as an expensive and cumbersome afterthought. Key Concepts: The storyline continues from the last slide: 10 years later your customer calls you and says things didnt exactly work out that way. Theyve grown as a business, theyve added numerous systems, theyve increased their dependence on technology, and theyve now got an architecture that looks like this and the question is why and how does that happen? What are the issues involved here? The complexity comes from the highly generalized nature of the packaged applications and the need to adapt and rapidly evolve to meet requirements in many different situations. While business application systems cope with the complexity of delivering business value, customer and industry practices are constantly changing. Disconnected silos of functionality are the reality customers live with. Integration is a fact of life for them today and in all likelihood will stay that way, as there are always new ways of doing business better or with different focus. Change is a constant. Business applications need to follow a different path in the future as innovation continues to drive customers in various ways. Instead of launching a monumental exercise of folding business capabilities into the existing solution, one should accept the fact that despite all efforts to be everything that a customers needs in one system, reality speaks against such possibility. Even SAP clearly the most integrated and complete business application system has abandoned that strategy for a more modular approach. The strategy for success is to accept a connected as opposed to a physically integrated environment of business functions that support integration from the start instead of as an expensive and cumbersome afterthought. Its clear that yesterdays approaches only add to todays complexities, not subtract from it. Whats needed are new approaches, not just more snake oil that adds to the stuff a company must now manage. Most technologies are now middleware for your middleware Will the middleware insanity ever end, or is this an endless loop of having to buy new integration stuff on top of the old stuff every time some new technology wave emerges? What will get us out of this mess? More technology or a new way of defining how systems are built and managed? Questions to Address: How do we know that technology alone wont solve the problem? What is evidence of this middleware-for your-middleware problem?

    45. The Business Inflexibility Trap Inflexibility is the Mother of All Business Problems If youre flexible enough, you can solve all the other problems Information Technology (IT) is an impediment to business change It wasnt supposed to be that way! Slide Timing: 1 minute Key Concepts: Regardless of what problems a company faces, if it were more flexible, it would be better able to deal with those problems. Thats why its the mother of all business problems. Questions to Address: Can you think of a business problem that increased flexibility wouldnt help with? How many business problems would be helped if IT were more flexible? Slide Timing: 1 minute Key Concepts: Regardless of what problems a company faces, if it were more flexible, it would be better able to deal with those problems. Thats why its the mother of all business problems. Questions to Address: Can you think of a business problem that increased flexibility wouldnt help with? How many business problems would be helped if IT were more flexible?

    46. What do you Want your IT to Do Anyway? The Automation Paradox The more we automate, the more our remaining problems are difficult to automate Is IT about getting the technology to work together or to help the business meet its goals? Slide Timing: 1-2 minutes Key Concepts: The Information Revolution of the mid-twentieth century expanded the power of automation beyond manufacturing and across all parts of the organization, as one IT innovation after another automated an increasingly expanding set of business processes. The problem with automation, however, is that as each new technology innovation, from the Jacquard loom to the transistor to the World Wide Web, moved businesses up the spectrum of automation, processes become increasingly difficult to automate. Tasks that require human knowledge and logic are among the most difficult to automate. At some point, however, the effect of the new innovation peters out, and people must step in to manually handle the tasks that have been resistant to automation. That is, until the next innovation comes along and changes the game anew. The ongoing series of innovations that lead to increasing levels of automation clearly represent progress for the businesses that are doing the innovating. Such progress, however, comes at a price, as the humans involved in those processes find their daily work transformed or eliminated. People, of course, can only tolerate so much punishment, and as a result, the history of business through the last two centuries contains progress in the human condition as well, from the labor movement to occupational health regulations to the World Wide Web and the global community it fostered. Fundamentally, with each technical innovation, business can only progress so far before people require improvements in the human condition. Questions to Address: How important is automation strategically to your organization? Do you think its just a matter of time till everything is automated? If so, what will people do at work? Slide Timing: 1-2 minutes Key Concepts: The Information Revolution of the mid-twentieth century expanded the power of automation beyond manufacturing and across all parts of the organization, as one IT innovation after another automated an increasingly expanding set of business processes. The problem with automation, however, is that as each new technology innovation, from the Jacquard loom to the transistor to the World Wide Web, moved businesses up the spectrum of automation, processes become increasingly difficult to automate. Tasks that require human knowledge and logic are among the most difficult to automate. At some point, however, the effect of the new innovation peters out, and people must step in to manually handle the tasks that have been resistant to automation. That is, until the next innovation comes along and changes the game anew. The ongoing series of innovations that lead to increasing levels of automation clearly represent progress for the businesses that are doing the innovating. Such progress, however, comes at a price, as the humans involved in those processes find their daily work transformed or eliminated. People, of course, can only tolerate so much punishment, and as a result, the history of business through the last two centuries contains progress in the human condition as well, from the labor movement to occupational health regulations to the World Wide Web and the global community it fostered. Fundamentally, with each technical innovation, business can only progress so far before people require improvements in the human condition. Questions to Address: How important is automation strategically to your organization? Do you think its just a matter of time till everything is automated? If so, what will people do at work?

    47. Service Orientation: Light at the End of the Tunnel Service Orientation is a business approach Its not about connecting things, its about enabling processes The core business motivation is business agility Rather than rip and replace old systems make them work better together We dont want more middleware for our middleware Slide Timing: 1-2 minutes Key Concepts: In the Service-oriented approach to integration, however, were not simply leveraging open standardsin fact, were not really integrating at all per se. Service-oriented integration is a side effect of building composite, loosely coupled, Service-oriented processes. Were composing processes out of Services and then exposing those processes as Services so other processes can consume them. Theres no assumption that Services must be on the same system or even in the same country. Rather, the whole idea of Service-oriented integration is to compose Services regardless of their underlying technology. If we can compose Services together in an agile way such that changing business assumptions simply changes the composition, rather than the implementation, we can get away from having to spend money in times of change, let alone during routine maintenance. Its important to note, however, that if you take a Service-oriented approach to integration, it is not sufficient simply to wrap existing systems with standards-based interfaces and call them Services. Rather, businesses must spend time analyzing their business processes and creating the right business Services, perhaps even requiring the composition of multiple Services to accomplish a single task. This loosely coupled composition enables the organization to support frequent changes in the underlying systems, as well as changes to business processes and underlying business assumptions, without the need to make interface changes that break the loose coupling of the Services. The real win with Service-oriented integration, therefore, is in the dramatic reduction of cost at the maintenance and change phases of integration. The initial costs of moving to Service orientation are manageable, but not insignificant. Its the amount of time that it takes to build the right Services and develop the right contracts and metadata that accounts for the cost of this approach. So, what we now need is a way to move to Service orientation without swallowing a huge pill up-front. Fortunately, these are challenges we are well equipped to address. Questions to Address: Just how big a deal is Service Orientation? Paradigm shift? Evolutionary step? Or just the same old thing warmed over? What will it take for Service Orientation to stick in the enterprise? Slide Timing: 1-2 minutes Key Concepts: In the Service-oriented approach to integration, however, were not simply leveraging open standardsin fact, were not really integrating at all per se. Service-oriented integration is a side effect of building composite, loosely coupled, Service-oriented processes. Were composing processes out of Services and then exposing those processes as Services so other processes can consume them. Theres no assumption that Services must be on the same system or even in the same country. Rather, the whole idea of Service-oriented integration is to compose Services regardless of their underlying technology. If we can compose Services together in an agile way such that changing business assumptions simply changes the composition, rather than the implementation, we can get away from having to spend money in times of change, let alone during routine maintenance. Its important to note, however, that if you take a Service-oriented approach to integration, it is not sufficient simply to wrap existing systems with standards-based interfaces and call them Services. Rather, businesses must spend time analyzing their business processes and creating the right business Services, perhaps even requiring the composition of multiple Services to accomplish a single task. This loosely coupled composition enables the organization to support frequent changes in the underlying systems, as well as changes to business processes and underlying business assumptions, without the need to make interface changes that break the loose coupling of the Services. The real win with Service-oriented integration, therefore, is in the dramatic reduction of cost at the maintenance and change phases of integration. The initial costs of moving to Service orientation are manageable, but not insignificant. Its the amount of time that it takes to build the right Services and develop the right contracts and metadata that accounts for the cost of this approach. So, what we now need is a way to move to Service orientation without swallowing a huge pill up-front. Fortunately, these are challenges we are well equipped to address. Questions to Address: Just how big a deal is Service Orientation? Paradigm shift? Evolutionary step? Or just the same old thing warmed over? What will it take for Service Orientation to stick in the enterprise?

    48. Level Set What is SOA? SOA is architecture a set of best practices for the organization and use of IT Abstracts software functionality as loosely-coupled, business-oriented Services Services can be composed into business processes (which are also Services) in a declarative manner Key Concepts: Introduce the SOA term as an evolution in IT that will address the issues of brittleness and change. Business agility is the core motivator for SOA. Define business agility as being able to respond quickly and efficiently to change, and to leverage change for competitive advantage. SOA doesnt require more middleware or substantial replacement of existing systems. Service-Oriented Architecture is an approach, not a new technology! Explain each of the bullet points in significant detail Show that the problem is not what we use to connect our systems, but rather the way in which weve built them in the first place Questions to Address: How is SOA not a technology? What is architecture? Why is business agility different from integration? How is SOA a fundamental shift for the industry? Key Concepts: As mentioned in the last slide, key to the definition of SOA is the Services abstraction layer and the composability of business Services. The Legos represent standard interface Services that can be connected or composed into larger business processes. Emphasize that because of the abstraction, while IT provides the individual Services, the composition of those Services into larger business process Services in SOA is owned not by IT but by business owners. Define SOA in the context of architecture (will define architecture later). Key to the definition of SOA is the Services abstraction layer and the composability of business Services. This is a business definition, high-level of SOA. This is not meant to be a technical definition of SOA. Questions to Address: What is architecture? What is an abstraction? How are Services like LEGO blocks? SOA is all about reuse and composition show how that relates to the LEGO idea What are Web Services, and how are they like the bumps on the LEGO blocks? What matters most the bumps or the shapes and quantity of blocks? What is reuse, and why is it important? Key Concepts: Introduce the SOA term as an evolution in IT that will address the issues of brittleness and change. Business agility is the core motivator for SOA. Define business agility as being able to respond quickly and efficiently to change, and to leverage change for competitive advantage. SOA doesnt require more middleware or substantial replacement of existing systems. Service-Oriented Architecture is an approach, not a new technology! Explain each of the bullet points in significant detail Show that the problem is not what we use to connect our systems, but rather the way in which weve built them in the first place Questions to Address: How is SOA not a technology? What is architecture? Why is business agility different from integration? How is SOA a fundamental shift for the industry? Key Concepts: As mentioned in the last slide, key to the definition of SOA is the Services abstraction layer and the composability of business Services. The Legos represent standard interface Services that can be connected or composed into larger business processes. Emphasize that because of the abstraction, while IT provides the individual Services, the composition of those Services into larger business process Services in SOA is owned not by IT but by business owners. Define SOA in the context of architecture (will define architecture later). Key to the definition of SOA is the Services abstraction layer and the composability of business Services. This is a business definition, high-level of SOA. This is not meant to be a technical definition of SOA. Questions to Address: What is architecture? What is an abstraction? How are Services like LEGO blocks? SOA is all about reuse and composition show how that relates to the LEGO idea What are Web Services, and how are they like the bumps on the LEGO blocks? What matters most the bumps or the shapes and quantity of blocks? What is reuse, and why is it important?

    49. What is a Service? Broad meaning: something providing a capability to another as needed IT Services, like print services or email services Business Services, like accounting or human resource management Software-as-a-Service Narrower meaning: an abstraction of IT functionality or data Web Services are one example SOA starts with this kind of Service Slide Timing: 2-3 minutes Key Concepts: We capitalize the narrower meaning of Service to distinguish it from the other meanings. Consider other kinds of loosely coupled Services that arent Web Services. Key point: SOA should eventually subsume the broader meanings of service as well. The word service is one of those vague terms with many different meanings depending on the context. In different situations, service is what you get in a restaurant or gas station, what youre in when you join the army, or what you endure in church. There is a common thread that winds its way through all of these meanings, however, and that is that the term service denotes actions or capabilities someone (or something) provides to another. Whether it is waiting tables, serving ones country, or preaching a sermon, there is always a provider of the service, a consumer of the service, and the actions that constitute the service itself. In much the same way, were going to refer to the concept of software Services as IT functionality and capabilities that one computer system provides to another. In this case, we capitalize the word Service when were talking about software Services to distinguish them from all the other meanings of the word service. Because weve already had the discussion about providers and consumers of data, software functionality, and contracted interfaces, when we talk about a Service, then, we mean a contracted interface to software functionality. Services are interfaces to software, not the underlying software itself. A Service interface simply defines the contractual obligations between consumers and providers. Sometimes people think of a Service as a piece of software that exposes a particular kind of interface, but those are the underlying bits of technology that we call components. Its possible, therefore, to expose components as Services. Services can be tightly coupled or loosely coupled (or anything in between, for that matter). It is entirely possible to define a Service interface that is rigid and inflexible to change, requiring change to both consumers and providers whenever some assumption changes; we also can define a loosely coupled Service that properly abstracts assumptions, so that its more amenable to unpredictable change. Well definitely be more interested in loosely coupled Services, but the fact remains that there are plenty of tightly coupled ones out there, and sometimes you want your Services to be tightly coupled. For an interface to be a Service, however, it must have a contract. We generally associate a Service with a provider, but, in fact, consumers have Service interfaces as well. After all, contracts are agreements that impose requirements on both parties in an exchange and typically provide metadata about consumers as well as providers. Services interact via messages. A message is simply a way of sending information from one party to another. Messages facilitate loose coupling, because they allow for a clean separation between providers and consumers. Because Services send and receive messages, you can think of a Service as an abstraction of the underlying software component that sits on the network somewhere and sends and/or receives messages as per its contract. Services may or may not have standards-based interfaces. However, because the adoption of standards makes it significantly easier to move to agile, flexible architectures that support unpredictable change, were particularly interested in standards-based Service interfaces and standards-based messaging between Services. We call the standards that govern interactions among Services Web Services standards. Web Services specify a standard language for Service definition and interaction, but not all Services are Web Services, nor are Web Services necessarily loosely coupled. Questions to Address: What are some examples of Services other than Web Services? Slide Timing: 2-3 minutes Key Concepts: We capitalize the narrower meaning of Service to distinguish it from the other meanings. Consider other kinds of loosely coupled Services that arent Web Services. Key point: SOA should eventually subsume the broader meanings of service as well. The word service is one of those vague terms with many different meanings depending on the context. In different situations, service is what you get in a restaurant or gas station, what youre in when you join the army, or what you endure in church. There is a common thread that winds its way through all of these meanings, however, and that is that the term service denotes actions or capabilities someone (or something) provides to another. Whether it is waiting tables, serving ones country, or preaching a sermon, there is always a provider of the service, a consumer of the service, and the actions that constitute the service itself. In much the same way, were going to refer to the concept of software Services as IT functionality and capabilities that one computer system provides to another. In this case, we capitalize the word Service when were talking about software Services to distinguish them from all the other meanings of the word service. Because weve already had the discussion about providers and consumers of data, software functionality, and contracted interfaces, when we talk about a Service, then, we mean a contracted interface to software functionality. Services are interfaces to software, not the underlying software itself. A Service interface simply defines the contractual obligations between consumers and providers. Sometimes people think of a Service as a piece of software that exposes a particular kind of interface, but those are the underlying bits of technology that we call components. Its possible, therefore, to expose components as Services. Services can be tightly coupled or loosely coupled (or anything in between, for that matter). It is entirely possible to define a Service interface that is rigid and inflexible to change, requiring change to both consumers and providers whenever some assumption changes; we also can define a loosely coupled Service that properly abstracts assumptions, so that its more amenable to unpredictable change. Well definitely be more interested in loosely coupled Services, but the fact remains that there are plenty of tightly coupled ones out there, and sometimes you want your Services to be tightly coupled. For an interface to be a Service, however, it must have a contract. We generally associate a Service with a provider, but, in fact, consumers have Service interfaces as well. After all, contracts are agreements that impose requirements on both parties in an exchange and typically provide metadata about consumers as well as providers. Services interact via messages. A message is simply a way of sending information from one party to another. Messages facilitate loose coupling, because they allow for a clean separation between providers and consumers. Because Services send and receive messages, you can think of a Service as an abstraction of the underlying software component that sits on the network somewhere and sends and/or receives messages as per its contract. Services may or may not have standards-based interfaces. However, because the adoption of standards makes it significantly easier to move to agile, flexible architectures that support unpredictable change, were particularly interested in standards-based Service interfaces and standards-based messaging between Services. We call the standards that govern interactions among Services Web Services standards. Web Services specify a standard language for Service definition and interaction, but not all Services are Web Services, nor are Web Services necessarily loosely coupled. Questions to Address: What are some examples of Services other than Web Services?

    50. What Has Slowed True SOA Implementations? Proprietary tools Lack of universally accepted protocols Enterprise governance less emphasized Legacy roadblocks

    51. What is Different Now? Numerous tools and open standards: Internet, XML, SOAP, UDDI, WSDL, JMS, .NET, etc General acceptance of standards Architecturally integrated Web Services, MOM, and RMI architectures are now more achievable Unprecedented urgency to share data

    52. Integration of Services The integration of services becomes the Service Bus, or what we like to call the Interoperability Hub

    53. SOA Opens the Architecture As external services development spreads and matures within an environment, the legacy application components become open. - and therefore - New application development will begin to be based more on the integration of services, rather than linking of components and databases.

    54. Widespread Support

    55. Service Oriented Enterprises

    56. The Benefits of SOA Reduced cost of integration Improved value from legacy applications Reuse leading to reduced redundancy Greater visibility for governance & compliance Increased reuse of software assets Business agility Slide timing: 5 minutes Instructor notes: If this is a presentation to a business audience, move this slide the beginning of the presentation, right after checking familiarity. Speaking to IT learners, leave it here. It is important for IT personnel to understand the benefits of SOA in order to build support for the approach. Focus on business agility. The 1st point of business agility is reactive. More important part is 2nd point. It is strategic/proactive so that it introduces change into the environment that competition cant keep up with. A challenge is that it is more difficult to calculate ROI of strategic/proactive benefits, so it may be a harder sell. Key Concepts: Emphasize that this key slide is critical to understand for presenting the SOA case to stakeholders. Cover all points but focus on the last, business agility. Since SOA provides an abstraction layer, integration becomes more efficient. Leveraging legacy applications means both reduced cost and increased value to the organization, as well as support from the legacy application groups once they understand that you are going to increase value rather than rip and replace. Redundancy is reduced because Services are made available to consumers, increasing the visibility of duplication. In this same light, availability means greater opportunity for visibility and governance, insuring that corporate policies are integrated, implemented and enforced. Business agility is a core value of SOA: agility means the ability to change and adapt quickly and effectively, leveraging this capability for competitive advantage. Ownership in the hands of business users, composable Services that dont wait in an IT queue, loose coupling that allows for change without breaking other Services all of these lend to business agility. Questions to Address: Are legacy apps leveraged or is the current practice rip-and-replace? How is visibility and governance handled in current environments? What is the tactical part of the business agility definition, and what is the strategic part? Slide timing: 5 minutes Instructor notes: If this is a presentation to a business audience, move this slide the beginning of the presentation, right after checking familiarity. Speaking to IT learners, leave it here. It is important for IT personnel to understand the benefits of SOA in order to build support for the approach. Focus on business agility. The 1st point of business agility is reactive. More important part is 2nd point. It is strategic/proactive so that it introduces change into the environment that competition cant keep up with. A challenge is that it is more difficult to calculate ROI of strategic/proactive benefits, so it may be a harder sell. Key Concepts: Emphasize that this key slide is critical to understand for presenting the SOA case to stakeholders. Cover all points but focus on the last, business agility. Since SOA provides an abstraction layer, integration becomes more efficient. Leveraging legacy applications means both reduced cost and increased value to the organization, as well as support from the legacy application groups once they understand that you are going to increase value rather than rip and replace. Redundancy is reduced because Services are made available to consumers, increasing the visibility of duplication. In this same light, availability means greater opportunity for visibility and governance, insuring that corporate policies are integrated, implemented and enforced. Business agility is a core value of SOA: agility means the ability to change and adapt quickly and effectively, leveraging this capability for competitive advantage. Ownership in the hands of business users, composable Services that dont wait in an IT queue, loose coupling that allows for change without breaking other Services all of these lend to business agility. Questions to Address: Are legacy apps leveraged or is the current practice rip-and-replace? How is visibility and governance handled in current environments? What is the tactical part of the business agility definition, and what is the strategic part?

    57. SOA & the ESB stack

    59. How Services Make Applications Open In the past applications were integrated in a tightly coupled fashion which led to a frail implementation

    60. How Services Make Applications Open In the past applications were integrated in a tightly coupled fashion which led to a frail implementation

    61. How Services Make Applications Open An agency can quickly adapt to new methods of communication

    62. How Agencies are Integrating Stovepipe Applications

    63. Technologies Used for Integration

    64. Roadmap to SOA Start by creating services around existing processes within applications

    65. Roadmap to SOA

    66. Roadmap to SOA

    67. Roadmap to SOA Enterprise Interoperability Hub The next step is to provide a view of the agency to external customers via an Enterprise Interoperability Hub The Hub will become the mechanism to represent services to external agencies.

    68. Roadmap to SOA

    69. Roadmap to SOA

    70. Agenda Concepts of architecture design Component Model EJB & J2EE Web Service & SOA Open source and architecture

    71. In the news US DoD Supports Open Source Enhances agility of IT industries to more rapidly adapt and change to user needed capabilities. Strengthens the industrial base by not protecting industry from competition. Makes industry more likely to compete on ideas and execution versus product lock-in. Enables DoD to secure the infrastructure and increase security by understanding what is actually in the source code of software installed in DoD networks. Rapidly respond to adversary actions as well as rapid changes in the technology industrial base.

    72. 72 Open Source, as a Force Open source is now fast-growing Vendors are alienating customers & channels Enterprise software and business model evolves slowly Open source evolves faster Open source is now acceptable in F1000 73% of F1000 are using or will use open source Cost of distribution and support are dropping dramatically ECM is recognized as must have, but expensive Regulation and information explosion Fastest growing category of enterprise software ECM vendors are alienating customers & channels Enterprise software model is broken Pressure on customers to upgrade Vendors are taking margin away from partners by selling their own services New technologies available via open source Open source provides better infrastructure for free A unique window of opportunity Next in the stack after OS (Linux), DBMS (MySQL) and App Server (JBoss) Open source is now acceptable in F1000 73% of F1000 are using or will use open source Cost of distribution and support are dropping dramatically ECM is recognized as must have, but expensive Regulation and information explosion Fastest growing category of enterprise software ECM vendors are alienating customers & channels Enterprise software model is broken Pressure on customers to upgrade Vendors are taking margin away from partners by selling their own services New technologies available via open source Open source provides better infrastructure for free A unique window of opportunity Next in the stack after OS (Linux), DBMS (MySQL) and App Server (JBoss)

    73. 73 Fostering Innovation

    74. 74 Open Source is Changing Enterprise Software All categories of enterprise software affected OS, DBMS, BI, Test & Build, System Admin, CRM, ERP, CMS Users sell themselves through try and buy Direct connection between customers and developers Architecture is guided by the community Community, developers collaborate on the elimination of bugs Faster propagation, faster innovation All categories of enterprise software affected OS, DBMS, BI, Test & Build, System Admin, CRM, ERP, CMS Users sell themselves through try and buy Faster, less risky adoption Lowering costs by reducing unnecessary sales, marketing Direct connection between customers and developers Product management is done by users Architecture is guided by the community Release often, constant peer review Community, developers collaborate on the elimination of bugs No more send me a dump of your data Faster propagation, faster innovation All categories of enterprise software affected OS, DBMS, BI, Test & Build, System Admin, CRM, ERP, CMS Users sell themselves through try and buy Faster, less risky adoption Lowering costs by reducing unnecessary sales, marketing Direct connection between customers and developers Product management is done by users Architecture is guided by the community Release often, constant peer review Community, developers collaborate on the elimination of bugs No more send me a dump of your data Faster propagation, faster innovation

    75. 75 Traditional Architectures Example Typical EJB based Solution Heavy-weight architecture Distributed architecture Still popular in development Customization Model JSR-168 Portal JSR-170 API Web Services API BPEL Java Server Faces XML Complement the Client/ApplicationCustomization Model JSR-168 Portal JSR-170 API Web Services API BPEL Java Server Faces XML Complement the Client/Application

    76. 76 New Architectures Example Enterprise-scale, high-integrity Best of Breed Open Source Components Modular, light-weight architecture Distributed architecture High Availability Customization Model JSR-168 Portal JSR-170 API Web Services API BPEL Java Server Faces XML Complement the Client/ApplicationCustomization Model JSR-168 Portal JSR-170 API Web Services API BPEL Java Server Faces XML Complement the Client/Application

    77. 77 New Architectures Example Customization Model JSR-168 Portal JSR-170 API Web Services API BPEL Java Server Faces XML Complement the Client/ApplicationCustomization Model JSR-168 Portal JSR-170 API Web Services API BPEL Java Server Faces XML Complement the Client/Application

    78. Innovation in Software Architecture through Open Source Adaptability and Extensibility Performance and Scalability Interoperability

    79. Interoperability I Web Services SOAP Structured protocol and standards Discovery and negotiation Huge backing of IBM and Microsoft WS-* Corporate following HARD II Mash-up REST URL and HTTP Rough XML package Utilize Internet infrastructure Backing of Google, Amazon, eBay Mash-up Camp Internet following EASY

    80. Whats Mash-Up?

    81. The promise of mashups Create new experiences by combining components from different authors Each site focuses on what it does best Can wire up components in a novel way Google maps + Craigslist = HousingMaps Rich interaction often requires talking back and forth between components Houses address ? lat / long ? map it

    83. Web 2.0 vs. SOA

    84. The Rise of the Mashup Mashup = a flexible composition of Services within a rich user interface environment In essence, a Mashup is a SOBA interface

    85. 85 Summary Open source brings the community into the development, support and service process Open source brings back the innovation process into the industry A new generation of architecture is possible due to open source

More Related