© Donald F. Ferguson, 2015. All rights reserved. Some Essentials for Modern Solution Development WSO2Con 2015 US Dr. Donald F. Ferguson

Slides:



Advertisements
Similar presentations
Siebel Web Services Siebel Web Services March, From
Advertisements

Ch:8 Design Concepts S.W Design should have following quality attribute: Functionality Usability Reliability Performance Supportability (extensibility,
Building an Operational Enterprise Architecture and Service Oriented Architecture Best Practices Presented by: Ajay Budhraja Copyright 2006 Ajay Budhraja,
Spring, Hibernate and Web Services 13 th September 2014.
Service Oriented Architecture Concepts March 27, 2006 Chris Armstrong
1 Introduction to SOA. 2 The Service-Oriented Enterprise eXtensible Markup Language (XML) Web services XML-based technologies for messaging, service description,
G O B E Y O N D C O N V E N T I O N WORF: Developing DB2 UDB based Web Services on a Websphere Application Server Kris Van Thillo, ABIS Training & Consulting.
Integrating SOA and the Application Development Framework Shaun O’Brien Principal Product Manager – Oracle JDeveloper / ADF.
© 2006 IBM Corporation IBM Software Group Relevance of Service Orientated Architecture to an Academic Infrastructure Gareth Greenwood, e-learning Evangelist,
Adding More Value to Your ERP System Using Service-Oriented Architecture (SOA) Copyright © 2001 iWay Software 1 Information Builders.
SOA with Progress Philipp Walther Consultant. © 2007 Progress Software Corporation2 Agenda  SOA  Enterprise Service Bus (ESB)  The Progress SOA Portfolio.
Stuart Sim Chief Architect Global Education & research Sun Client Solutions Blog:
CSC-8530: Distributed Systems Christopher Salembier 28-Oct-2009.
Introduction to Service-Oriented Architecture. Outline Definition Features Examples of SOA Web Service Standards Example Pros and Cons Integration with.
Page 1 Building Reliable Component-based Systems Chapter 18 - A Framework for Integrating Business Applications Chapter 18 A Framework for Integrating.
Software Engineering Module 1 -Components Teaching unit 3 – Advanced development Ernesto Damiani Free University of Bozen - Bolzano Lesson 2 – Components.
Microservices under the microscope
SOA, EDA, ECM and more Discover a pragmatic architecture for an intelligent enterprise, to maximize impact on the business Patrice Bertrand Software Architect.
© 2006 IBM Corporation SOA on your terms and our expertise Discovering the Value of SOA SOA In Action SOA & End-2-End Business Driven Development using.
Getting Started with WCF Windows Communication Foundation 4.0 Development Chapter 1.
® IBM Software Group © IBM Corporation IBM Information Server Service Oriented Architecture WebSphere Information Services Director (WISD)
SOA, BPM, BPEL, jBPM.
Web Services Mohamed Fahmy Dr. Sherif Aly Hussein.
© 2007 by «Author»; made available under the EPL v1.0 | Date | Other Information, if necessary Eclipse SOA Tools Platform Project Eric Newcomer IONA Technologies.
Microsoft Visual Studio 2010 Muhammad Zubair MS (FAST-NU) Experience: 5+ Years Contact:- Cell#:
95-843: Service Oriented Architecture 1 Master of Information System Management Service Oriented Architecture Lecture 10: Service Component Architecture.
6st ACS Workshop UTFSM ACS Course Component, Container, Lifecycle Management 6st ACS Workshop UTFSM, Valparaiso, Chile H. Sommer, G. Chiozzi.
XML in Development of Distributed Systems Tooling Programming Runtime.
What is Service Oriented Architecture ? CS409 Application Services Even Semester 2007.
Microsoft Visual Studio 2010 Muhammad Zubair MS (FAST-NU) Experience: 5+ Years Contact:- Cell#:
SOFTWARE DESIGN AND ARCHITECTURE LECTURE 09. Review Introduction to architectural styles Distributed architectures – Client Server Architecture – Multi-tier.
Engr. M. Fahad Khan Lecturer Software Engineering Department University Of Engineering & Technology Taxila.
OOI CI LCA REVIEW August 2010 Ocean Observatories Initiative OOI Cyberinfrastructure Architecture Overview Michael Meisinger Life Cycle Architecture Review.
Middleware for FIs Apeego House 4B, Tardeo Rd. Mumbai Tel: Fax:
1 Advanced Software Architecture Muhammad Bilal Bashir PhD Scholar (Computer Science) Mohammad Ali Jinnah University.
1 Geospatial and Business Intelligence Jean-Sébastien Turcotte Executive VP San Francisco - April 2007 Streamlining web mapping applications.
Service Oriented Architecture (SOA) Dennis Schwarz November 21, 2008.
1 UNIT –II Architecting Web Service. 2 Why SOA? – business point of view  Information Technology (IT) workers face many challenges, including: Limited.
Tuscany: a SOA framework Jeffrey Guo Accelrys, Inc.
Introduction to soarchitect. agenda SOA background and overview transaction recorder summary.
Distribution and components. 2 What is the problem? Enterprise computing is Large scale & complex: It supports large scale and complex organisations Spanning.
Enterprise Integration Patterns CS3300 Fall 2015.
1 Object Oriented Logic Programming as an Agent Building Infrastructure Oct 12, 2002 Copyright © 2002, Paul Tarau Paul Tarau University of North Texas.
© Donald F. Ferguson, All rights reserved. Topics in Computer Science: Modern Internet Service Oriented Application Development Lecture 5: Composite.
Preface IIntroduction Objectives I-2 Course Overview I-3 1Oracle Application Development Framework Objectives 1-2 J2EE Platform 1-3 Benefits of the J2EE.
Lecture 3: Design Specification, Composition, Persistence
SOFTWARE DESIGN AND ARCHITECTURE LECTURE 15. Review Interaction-Oriented Software Architectures – MVC.
Introduction to business component technologies. Component definitions Szyperski: A software component is a unit of composition with contractually specified.
Overview of SOA and the role of ESB/OSB
1 Service Oriented Architecture SOA. 2 Service Oriented Architecture (SOA) Definition  SOA is an architecture paradigm that is gaining recently a significant.
1 SERVICE ORIENTED ARCHITECTURE ANTHONY GACHANGO D61/70547/2008 DIS 601.
Basics of SOA Testing Assurance Services Unit 24 February 2016.
Copyright © 2004, Keith D Swenson, All Rights Reserved. OASIS Asynchronous Service Access Protocol (ASAP) Tutorial Overview, OASIS ASAP TC May 4, 2004.
Service Oriented Architecture Enabling the Agile and Flexible Business of the 21 st Century.
 Cloud Computing technology basics Platform Evolution Advantages  Microsoft Windows Azure technology basics Windows Azure – A Lap around the platform.
A service Oriented Architecture & Web Service Technology.
© Donald F. Ferguson, All rights reserved. Topics in Computer Science: Modern Internet Service Oriented Application Development Lecture 6: Composite.
Service Oriented Architecture (SOA) Prof. Wenwen Li School of Geographical Sciences and Urban Planning 5644 Coor Hall
Self-Contained Systems
Java Microservices in the cloud
Modern Architectures in Cloud
Inventory of Distributed Computing Concepts and Web services
Lecture 1: Multi-tier Architecture Overview
Service Oriented Architecture (SOA)
Distributed Systems through Web Services
The 12 Factors to build Cloud Native Applications
Developing and testing enterprise Java applications
Introduction to SOA and Web Services
Introduction to Web Services and SOA
ONAP Architecture Principle Review
Presentation transcript:

© Donald F. Ferguson, All rights reserved. Some Essentials for Modern Solution Development WSO2Con 2015 US Dr. Donald F. Ferguson

2 © Donald F. Ferguson, All rights reserved.Some Essential for Modern Solution Development WSO2Con 2015 USA Contents

3 © Donald F. Ferguson, All rights reserved.Some Essential for Modern Solution Development WSO2Con 2015 USA Contents Introduction –Experience. –SOA and Microservices. –Presentation motivation. Five (out of dozens) of observations. –A “simple” scenario. –SOA “versus” microservices. –The three (out of a dozen so far) observations. –Composition and patterns. –Application – application dependencies. –Configuration properties in the environment. Summary, discussions and next steps.

4 © Donald F. Ferguson, All rights reserved.Some Essential for Modern Solution Development WSO2Con 2015 USA Introduction

5 © Donald F. Ferguson, All rights reserved.Some Essential for Modern Solution Development WSO2Con 2015 USA Experience and Motivation History of enabling distributed applications, e.g. –Message Driven Processing, Event Driven Architecture –CORBA, J2EE –WS-*, JSR 106, WS-ResourceFramework, WS-Transfer, … –Eclipse perspectives, Service Component Architecture, Service Data Objects –Internet Service Bus, Boomi, Integration Platform as a Service Three Columbia masters level courses exploring more modern technology –Modern Internet Application Development, e.g. AngularJS, Amazon SNS, MongoDB. –Modern Internet Service Oriented Application Development, e.g. REST, Redis, iPaaS. –Developing Applications with Microservices and APIs, e.g. Microservices, Google Pub/Sub, Amazon Simple Workflow. Common concepts emerge, get adopted, disappear and reemerge. –Technology will evolve and improve, but … –We need to ensure that new technology retains some core concepts.

6 © Donald F. Ferguson, All rights reserved.Some Essential for Modern Solution Development WSO2Con 2015 USA This Could be an Interesting Perspective, or …

7 © Donald F. Ferguson, All rights reserved.Some Essential for Modern Solution Development WSO2Con 2015 USA SOA DEFINITION Service-oriented architecture (SOA) is an architectural style for build­ing systems based on interactions of loosely coupled, coarse-grained, and autonomous components called services. Each service exposes processes and behavior through contracts, which are composed of messages at discoverable addresses called endpoints. A service’s behavior is governed by policies that are external to the service itself. The contracts and messages are used by external components called service consumers. Some observations – SOA is a reaction to distributed OO and RPC. –Coarse Grained and Messages –OO tends to lots of small classes/objects and fine-grain API calls (e.g. person.getIq()). –SOA tends to person.getState(). –Loosely coupled –Assume API calls “go remote” but may have local optimization. –Interfaces (Contracts) are not strongly typed, enabling independent evolution. –Endpoints –OO assumes “Java calling Java, perhaps over RMI.” –SOA separate Contract from Binding (WS-Interop, REST, message queues, etc). –Discoverable –OO assumes a classpath, findByClassName() and perhaps factory patterns. –SOA assumes you can go to a web callable repository and ask for SOA endpoints based on Contracts/Messages. –Web Services are a set of standards for SOA that enable interoperability.

8 © Donald F. Ferguson, All rights reserved.Some Essential for Modern Solution Development WSO2Con 2015 USA SOA Various developer tools generate helper classes, allowing the programmer to focus on application logic and not details of formatting XML messages for SOAP. Services often go into containers that automate implementation of policies, e.g. transactions, security, reliable messaging.

9 © Donald F. Ferguson, All rights reserved.Some Essential for Modern Solution Development WSO2Con 2015 USA Micro-services Characteristics Componentization via Services Organized around Business Capabilities Products not Projects Smart endpoints and dumb pipes Decentralized Governance Decentralized Data Management Infrastructure Automation Design for failure Evolutionary Design

10 © Donald F. Ferguson, All rights reserved.Some Essential for Modern Solution Development WSO2Con 2015 USA What has changed? We have –Heard similar terms –Loose coupling –Service discovery –Asynchronous messaging –Polyglot programming and persistence –Flexible scaling –etc. –Over and over again –Modular programming –CORBA, J2EE –Web services –… What has changed? Why are we “right” now? –“This time we really mean it. If you cannot take a joke, you should not be in software.” –There are some significant innovations, tempered by some lost capabilities. –The tide comes in one wave at a time, but let’s not lose what we have learned.

11 © Donald F. Ferguson, All rights reserved.Some Essential for Modern Solution Development WSO2Con 2015 USA Three Observations Out Of Dozens So Far …

12 © Donald F. Ferguson, All rights reserved.Some Essential for Modern Solution Development WSO2Con 2015 USA A “Simple” Scenario

13 © Donald F. Ferguson, All rights reserved.Some Essential for Modern Solution Development WSO2Con 2015 USA A Simple Scenario Student Info Microservice Manages Student Resource With a little bit of course info “inside” student resource Course Info Microservice Manages Course Resource With a little bit of student info “inside” student resource 3 rd parties provide the micro-service  Cannot examine or modify code. Combine to provide a single microservice –Managing two resources: Student, Course –Existing apps will continue to use the existing microservices. –Referential integrity, e.g. deleting a student removes student from course. Student Course

14 © Donald F. Ferguson, All rights reserved.Some Essential for Modern Solution Development WSO2Con 2015 USA When you do not know how to do something, the most likely answer is build a microservice. Student CourseAPI GW StudentCourse Integrat e

15 © Donald F. Ferguson, All rights reserved.Some Essential for Modern Solution Development WSO2Con 2015 USA Identifying Three Issues

16 © Donald F. Ferguson, All rights reserved.Some Essential for Modern Solution Development WSO2Con 2015 USA SOA vs Microservices computing/features/microservices.jhtml

17 © Donald F. Ferguson, All rights reserved.Some Essential for Modern Solution Development WSO2Con 2015 USA SOA vs Microservices computing/features/microservices.jhtml Not true. Dangerous was to think. Not a clear difference. Concepts appears in both. Important distinction. But focuses on how. Not sure what this means.

18 © Donald F. Ferguson, All rights reserved.Some Essential for Modern Solution Development WSO2Con 2015 USA The 12 Factors – How You Implement I. Codebase One codebase tracked in revision control, many deploys II. Dependencies Explicitly declare and isolate dependencies III. Config Store config in the environment IV. Backing Services Treat backing services as attached resources V. Build, release, run Strictly separate build and run stages VI. Processes Execute the app as one or more stateless processes VII. Port binding Export services via port binding VIII. Concurrency Scale out via the process model IX. Disposability Maximize robustness with fast startup and graceful shutdown X. Dev/prod parity Keep development, staging, and production as similar as possible XI. LogsTreat logs as event streams XII. Admin processes Run admin/management tasks as one-off processes

19 © Donald F. Ferguson, All rights reserved.Some Essential for Modern Solution Development WSO2Con 2015 USA The 12 Factors – How You Implement “Isssues” I. Codebase One codebase tracked in revision control, many deploys II. Dependencies Explicitly declare and isolate dependencies III. Config Store config in the environment IV. Backing Services Treat backing services as attached resources V. Build, release, run Strictly separate build and run stages VI. Processes Execute the app as one or more stateless processes VII. Port binding Export services via port binding VIII. Concurrency Scale out via the process model IX. Disposability Maximize robustness with fast startup and graceful shutdown X. Dev/prod parity Keep development, staging, and production as similar as possible XI. LogsTreat logs as event streams XII. Admin processes Run admin/management tasks as one-off processes

20 © Donald F. Ferguson, All rights reserved.Some Essential for Modern Solution Development WSO2Con 2015 USA The Three Observations

21 © Donald F. Ferguson, All rights reserved.Some Essential for Modern Solution Development WSO2Con 2015 USA Composition and Patterns

22 © Donald F. Ferguson, All rights reserved.Some Essential for Modern Solution Development WSO2Con 2015 USA Monolithic to Micro Cart Functions Java SQLite Recommendation Functions Node.js Redis Catalog Functions PDP MongoDB XXX MMM NNN Content Functions Ruby Amazon S3

23 © Donald F. Ferguson, All rights reserved.Some Essential for Modern Solution Development WSO2Con 2015 USA Point-to-Point Connections are Bad Doing this … Leads to this … …

24 © Donald F. Ferguson, All rights reserved.Some Essential for Modern Solution Development WSO2Con 2015 USA The Hub is Active, Patterned and Reusable

25 © Donald F. Ferguson, All rights reserved.Some Essential for Modern Solution Development WSO2Con 2015 USA Enterprise Integration Patterns with WSO2 ESB

26 © Donald F. Ferguson, All rights reserved.Some Essential for Modern Solution Development WSO2Con 2015 USA A New Theorem Ferguson’s 1 st Theorem on Microservices and REST {Compoentization via Services, Smart endpoint and dumb pipes} + {Layered System} = Enterprise Service Bus Microservice Characteristics Componentization via Services Organized around Business Capabilities Products not Projects Smart endpoints and dumb pipes Decentralized Governance Decentralized Data Management Infrastructure Automation Design for failure Evolutionary Design REST Tenents Client/server Stateless Caching Uniform Interface Layered System Code on Demand

27 © Donald F. Ferguson, All rights reserved.Some Essential for Modern Solution Development WSO2Con 2015 USA Composition Models (and Diagrams) The diagrams are always “nodes” and “arcs.” Structure: node A node B, where x is Requires/depends/calls/synchronizes with/… Control: –Execute A and then execute B, where A and B are tasks. –There is a shared set of “data objects” the tasks manipulate. Data flow: Do A to the message/document/… and then do B to A’s output Control FlowStructureData Flow

28 © Donald F. Ferguson, All rights reserved.Some Essential for Modern Solution Development WSO2Con 2015 USA Summary Dumb fast messaging versus powerful ESB –Is appealing. –But repeats the fallacies of “quick point-to-point” connections. Microservice composition is not antithetical to ESB (and middleware) –Microservices focus on how you build basic components to achieve benefits. –The approach should not exclude the benefits of –Middleware and tools. –For common composition models and patterns. –That can improve robustness, reuse, agility, … We see –The emergence of “callable” middleware, e.g. Amazon SWF, Google pub/sub. –But we cannot lose the benefits of active code in the middleware.

29 © Donald F. Ferguson, All rights reserved.Some Essential for Modern Solution Development WSO2Con 2015 USA Application Dependency

30 © Donald F. Ferguson, All rights reserved.Some Essential for Modern Solution Development WSO2Con 2015 USA Inject application implementation into reusable SW containers Reusable infrastructure containers Reusable SW containers but with core technology and frameworks

31 © Donald F. Ferguson, All rights reserved.Some Essential for Modern Solution Development WSO2Con 2015 USA

32 © Donald F. Ferguson, All rights reserved.Some Essential for Modern Solution Development WSO2Con 2015 USA OK, sounds good, but … Maybe My team and I Did not write Have source For all the microservices. I can probably figure out What API the microservice exports, e.g. Browsable web UI. What libraries it uses, e.g. pom.xml. But have no idea what REST APIs it calls into other microservices. Making assembly of “binary” difficult.

33 © Donald F. Ferguson, All rights reserved.Some Essential for Modern Solution Development WSO2Con 2015 USA We Used to Have SCA and WSDL MEPs

34 © Donald F. Ferguson, All rights reserved.Some Essential for Modern Solution Development WSO2Con 2015 USA Summary Dependency management is a crucial element of microservices and 12 Factor Apps –Document dependencies (pom.xml, runtime specific metadafiles, …). –Treat backing resources as attached services. –etc. But it is the nature of REST API assembly that –What “API/resources” a microservice manages. –And (especially) what REST resources it requires for application completeness. –Are very, very unclear. –Making many composition scenarios across teams difficult.,

35 © Donald F. Ferguson, All rights reserved.Some Essential for Modern Solution Development WSO2Con 2015 USA Config in the Environment

36 © Donald F. Ferguson, All rights reserved.Some Essential for Modern Solution Development WSO2Con 2015 USA III. Configuration An app’s config is everything that is likely to vary between deploys (staging, production, developer environments, etc). This includes:deploys Resource handles to the database, Memcached, and other backing servicesbacking services Credentials to external services such as Amazon S3 or Twitter Per-deploy values such as the canonical hostname for the deploy Apps sometimes store config as constants in the code. This is a violation of twelve-factor, which requires strict separation of config from code. Config varies substantially across deploys, code does not. Note that this definition of “config” does not include internal application config, such as config/routes.rb in Rails, or how code modules are connected in Spring. This type of config does not vary between deploys, and so is best done in the code.code modules are connectedSpring The twelve-factor app stores config in environment variables (often shortened to env vars or env). Env vars are easy to change between deploys without changing any code; unlike config files, there is little chance of them being checked into the code repo accidentally; and unlike custom config files, or other config mechanisms such as Java System Properties, they are a language- and OS-agnostic standard.

37 © Donald F. Ferguson, All rights reserved.Some Essential for Modern Solution Development WSO2Con 2015 USA Config Properties and Environment The approach –Works iff you only configure at deployment. –Breaks down if –You are “starting” a new deployed instance that needs to be different. –You need to modify a “running” instance. What would you do such a crazy thing? “SaaS” provided via –Instance per tenant. –Truly multitenant codebase. Configuration must be an API, and support configuring –Resource model/schema. –Some forms of application logic.

38 © Donald F. Ferguson, All rights reserved.Some Essential for Modern Solution Development WSO2Con 2015 USA Multitenant Application is Two Applications (APIs, Services), which a platform makes a lot easier. Data Metadata User Role Assemble Config Role

39 © Donald F. Ferguson, All rights reserved.Some Essential for Modern Solution Development WSO2Con 2015 USA Summary and Discussion

40 © Donald F. Ferguson, All rights reserved.Some Essential for Modern Solution Development WSO2Con 2015 USA Summary and Discussion – An interesting Perspective, but … “Those who fail to learn from history are doomed to repeat it”. George Santayana Or maybe I am just a cranky old guy that time has passed by.

41 © Donald F. Ferguson, All rights reserved.Some Essential for Modern Solution Development WSO2Con 2015 USA Lunch Yesterday

42 © Donald F. Ferguson, All rights reserved.Some Essential for Modern Solution Development WSO2Con 2015 USA Looked a lot like this, with less smiling … These kids do not know anything about DB. You should see what they do. That’s nothing. You should see how they do SOA.

43 © Donald F. Ferguson, All rights reserved.Some Essential for Modern Solution Development WSO2Con 2015 USA Summary and Discussion We can realize tremendous value from –REST. –Microservices. –12 Factor Applications. –Minimalistic infrastructure. –Dynamic dependency resolution. –Web callable middleware APIs. But, we risk losing benefits that emerged in middleware and standards when we started assmebling and composing solutions. –Interface and dependency metadata. –Optimized composition and integration engines and tools. –Automated enablement of capabilities via functional containers. We should work to realize the benefits of both. The most crucial next steps is ensuring awareness and adoption of design patterns.