OutSystems - The Art of Designing OutSystems Architectures - NextStep 2012

5,869 views
5,563 views

Published on

From art to a repeatable framework, this session will explore methods for creating sound architectures for enterprise-class applications built with the Agile Platform. Learn how to bring more clarity to the design process by using a framework that will allow teams to design and evolve their solution's architecture.

Published in: Technology

OutSystems - The Art of Designing OutSystems Architectures - NextStep 2012

  1. 1. www.outsystems.com Page 1 © 2012 OutSystems – all rights reserved The art of designing great Architectures in OutSystems NextStep 2012 Francisco Menezes - OutSystems
  2. 2. www.outsystems.com Page 2 © 2012 OutSystems – all rights reserved Objective Provide a comprehensive tool to help you become a great Architect in OutSystems • Not a prescriptive method •  A systematic approach that will build your architectural skills in OutSystems
  3. 3. www.outsystems.com Page 3 © 2012 OutSystems – all rights reserved •  What is a Great Architecture •  Start with a Reference Architecture •  Examples and known patterns •  3 steps to design a great architecture
  4. 4. www.outsystems.com Page 4 © 2012 OutSystems – all rights reserved Different perspectives, different goals Business IT & Operations Information System •  Easy to operate •  Easy to change •  Scalable Great Apps Great Delivery •  Adapts to my needs •  Intuitive and clear to use •  Real time
  5. 5. www.outsystems.com Page 5 © 2012 OutSystems – all rights reserved Why is a good architecture important? Supports planning Reduces risks Reduces costs Facilitates change Manages complexity Drives consensus
  6. 6. www.outsystems.com Page 6 © 2012 OutSystems – all rights reserved 4 Reasons for architectures to fail 1.  Poor and Inconsistent investment on design phases; 2.  Failure to understand the business context; 3.  Non disclosure of embedded features on involved technologies; 4.  Based on past unrelated experiences.
  7. 7. www.outsystems.com Page 7 © 2012 OutSystems – all rights reserved 5 Goals for a Great Architecture 1. Aligns with Business effective support to Business Roles and Processes 2. Promotes Usability provides assets to improve User Experience (UX) 3. Maintainable adaptable to business and technical changing reality 4. Performant efficient use of current resources 5. Scalable by simply scaling the infrastructure
  8. 8. www.outsystems.com Page 8 © 2012 OutSystems – all rights reserved •  What is a Great Architecture •  Start with a Reference Architecture •  Examples and known patterns •  3 steps to design a great architecture
  9. 9. www.outsystems.com Page 9 © 2012 OutSystems – all rights reserved Positioning in Architecture levels and Agile Planning Agile Planning Adapted from Cohn Strategy Portfolio Product Release Sprint Day Level Enterprise Architecture Segment Architecture Solution Architecture Scope Organization Line of business Function/ Process Detail Low Medium High Impact Strategic Business Operational Adapted from FEA Practice Guidance of US Target All Stakeholders Business Owners Users and Developers
  10. 10. www.outsystems.com Page 10 © 2012 OutSystems – all rights reserved Why is it important to start with a Reference Architecture? •  Speeds up the design of a new architecture; •  Gets a common understanding of all Business users and Developers •  Supports a systematic approach
  11. 11. www.outsystems.com Page 11 © 2012 OutSystems – all rights reserved Agile Platform – a great architecture foundation •  Scalable Infrastructures; •  User and Security Management; •  Stack independent; •  Multi-tenant; •  Multi-lingual; •  Easy integration; •  A IDE to support architecting
  12. 12. www.outsystems.com Page 12 © 2012 OutSystems – all rights reserved A Reference Architecture in 4 layers Layer 3 - Business interfaces, processes and logic that provides the features available to end users Layer 4 – Global navigation and homepages to improve UX for each Business Role Layer 2 - Core business logic and data that can be shared by different business applications Layer 1 – Connectors to external systems or infrastructural extensions to your framework Change High Medium Low
  13. 13. www.outsystems.com Page 13 © 2012 OutSystems – all rights reserved Example Consultants Sales RepMarketeers PDF Generator Rich Widgets Salesforce connector Pardot connector Charting Services Account Contact Sizing Engine QuoteQuoting Engine Quoting Tool Proposal Builder Customer Information Sizing Tool Intranet
  14. 14. www.outsystems.com Page 14 © 2012 OutSystems – all rights reserved No dependencies upwards Consultants Sales RepMarketeers PDF Generator Rich Widgets Salesforce connector Pardot connector Charting Services Account Contact Sizing Engine QuoteQuoting Engine Quoting Tool Proposal Builder Customer Information Sizing Tool Intranet
  15. 15. www.outsystems.com Page 15 © 2012 OutSystems – all rights reserved Proposal Builder Rich Widgets Sizing Tool Charting Services Sizing Engine PDF Generator Salesforce connector Pardot connector Account ContactQuoteQuoting Engine Quoting Tool Customer Information Intranet Benefits of a Service Oriented Architecture Compos- ability High Medium Low Granular- ility Low Medium High Reusab- ility Low Medium High Loose Coupling Low Medium High Abstract- ion Low Medium High Auto- nomy
  16. 16. www.outsystems.com Page 16 © 2012 OutSystems – all rights reserved The single eSpace Fallacy •  Rushing to service studio and start creating entities; •  Building UI from dragging entities to screens; •  Building all the logic in screen actions; •  Violating SOA principles! When designing a simple application, people tend to create a single eSpace ... MyApp.oml Processes Interface Processes Interface Logic Roles Timers Interface Logic Data Logic Data Web block
  17. 17. www.outsystems.com Page 17 © 2012 OutSystems – all rights reserved The single eSpace Fallacy ... only makes sense if, strategically, you’re sure that any part of your application will ever be usefull in a Enterprise solution. When designing a simple application, people tend to create a single eSpace ... MyApp.oml Processes Interface Processes Interface Logic Roles Timers Interface Logic Data Logic Data Web block
  18. 18. www.outsystems.com Page 18 © 2012 OutSystems – all rights reserved Don’t loosen up… … even with a very simple application don’t box yourself: The single eSpace approach •  Is not cheaper; •  Doesn’t scale; •  Compromises SOA; •  Fuels future refactoring; Get used to the multi-layer principle and let Service Studio help you.
  19. 19. www.outsystems.com Page 19 © 2012 OutSystems – all rights reserved But also don’t complicate… … by making an intricate approach to a complex problem: •  Use standards and sound principles to place everything into perspective; •  Adapt known patterns to your specific problem. Thomas A. Tinsley
  20. 20. www.outsystems.com Page 20 © 2012 OutSystems – all rights reserved •  What is a Great Architecture •  Start with a Reference Architecture •  Examples and known patterns •  3 steps to design a great architecture
  21. 21. www.outsystems.com Page 21 © 2012 OutSystems – all rights reserved Patterns ConnectorExtension UI patterns Logic Data Highly reusable components that may encapsulate services and protocols from external providers •  Actions to wrap the original services •  Exception Handling (throw exceptions instead of error codes) •  (Single) sign in and session logic •  Structures for inputs and outputs •  Interface building blocks (e.g. a graph builder) Web block Layer 1 - Infrastructure Services Goodies
  22. 22. www.outsystems.com Page 22 © 2012 OutSystems – all rights reserved External SQL Server .Net/Java PDF lib Simple Extension examples PDFGenerator.xif Logic Data • URL2PDF • ... • Input/Output Structs • ... PDF Generator Legacy Entities LegacyEntities.xif Data • PurchaseOrder • POLine • ... •  Wrap an external library •  Wrap Entities from an external Database
  23. 23. www.outsystems.com Page 23 © 2012 OutSystems – all rights reserved Connector example Salesforce.oml Logic Data • RenewSession • Account_Search • Account_Update • ... • Account_Struct • Opportunity_Struct • ... Salesforce Connector Logic Data • Login • Sforce_query • ... • Session_Struct • Return_Object • ... Salesforce.xif Extension to encapsulate external API • Map the underlying API without type transformation • Define the input/output Structures Wraper eSpace for consumers • Session management with external system • Match operations to Use Cases needs and concepts • Transform basic types into platform general structures/ types Salesforce Connector
  24. 24. www.outsystems.com Page 24 © 2012 OutSystems – all rights reserved Keep granularity when integrating with large APIs Hundreds of APIs and Structures ... ... ... ... ... ... ... Logic Data SAP Connector SAP.oml ... ... ... ... ... ... ... Logic Data SAP.xif SAP Connector
  25. 25. www.outsystems.com Page 25 © 2012 OutSystems – all rights reserved Keep granularity when integrating with large APIs Logic Data SAP Finance SAPFin.oml Logic Data SAPFin.xif Logic Data SAP HR SAPHR.oml Logic Data SAPHR.xif Logic Data SAP Materials SAPMM.oml Logic Data SAPMM.xif ... Split by functional groups . . . SAP Connector
  26. 26. www.outsystems.com Page 26 © 2012 OutSystems – all rights reserved UI Patterns examples JQuery Google Maps Charting Services Rich Widgets Data Logic Data Reusable JavaScript resource (only one cached version in a browser) Web block to display Map Images for Map Markers Actions to manipulate the Map Structure to handle Map Markers Data Web block to display a chart Structure for data series... Static entities for chart options... Web blocks for reusable UI Patterns (Info ballon, Pop up, Autocomplete, Feedback Messages ...)Webblock Interface Base Themes, Page layouts Webblock Webblock
  27. 27. www.outsystems.com Page 27 © 2012 OutSystems – all rights reserved Processes Engine Patterns Transparency services External Core Entity Core Entity Interface Logic Timers Data Isolate Service components around Business concepts, shared by different composite applications •  Core Entities (CE) (master and associated details) •  Change operations on CEs •  Business Logs •  Backoffice UI for crud edition and service configuration •  Asynchronous data processing (classification, data sync, statistics, ...) Layer 2 – Core Business Services Engine
  28. 28. www.outsystems.com Page 28 © 2012 OutSystems – all rights reserved Example - Core Entity Employee.oml Logic Data • Employee • OrganizationUnit • OrganizationUnitType • ... • EmployeeUpdate • EmployeeDismiss • OrganizationUnitNew • ... • BackOffice managementInterface Why? •  Entity is reusable by several applications. •  Make sure there is no other core entity that can be extracted from an existing application •  Expose Core entities as Read only to ensure that transformation code is encapsulated, reinforcing abstraction and autonomy. Employee Directory Vacations Expenses ...
  29. 29. www.outsystems.com Page 29 © 2012 OutSystems – all rights reserved Example - External Core Entity •  Master of the Entity is an external SaaS •  Local cache makes it look like any other Core Entity service to consuming apps Licensing Customer Info ... Account.oml Logic Data • Account (local cache) • Opportunity • ... • UpdatesFromSFA • ... • Asynchronous fetch of updated info in salesforce Timers Salesforce Connector Account Proposals
  30. 30. www.outsystems.com Page 30 © 2012 OutSystems – all rights reserved Example - Transparency Services Buffer Tolls Info Async. Transform. Channel Channel Channel Async. Feed FTP Channel FileUpload Vendor #1 FileUpload Vendor #2 HTTP Req. Vendor #3 Fraud Control ... Toll Management Toll transparency service Financial Matching Encapsulate and normalize information from multiple feeders. For the Consuming Apps is just another core entity Different providers / different protocols Toll Transparency Services Logic Data • Toll • TollUsage • TollBuffer • ProcessBuffer • TollUsage_Update • LoadFromFiles • LoadFromWS • ProcessBuffer • BackOffice • Toll management • Error Handling Interface Processes Timers
  31. 31. www.outsystems.com Page 31 © 2012 OutSystems – all rights reserved Sizing Engine Example – Calculation Engine Isolate calculation/transformation Engines. Sizing Tool Timers Sizing Engine Logic Data • Entities to configure rules • Inputs/output structures • Calculation/transformation APIS • Assynchronous calculations/ transformations • BackOffice for crude edition and configurationInterface • Sharable • Strategically replaceable (without affecting consumers) • Supports multiple versions
  32. 32. www.outsystems.com Page 32 © 2012 OutSystems – all rights reserved Interface Logic Data Layer 3 – Composite Applications End user Applications. Very dynamic, changing with business needs. •  Role based UI to support use cases and UX Orchestration •  Can have it’s own entities, extending or correlating Core Entities •  Business logic, to support use cases, that can not be isolated for common reuse •  Process workflow definition to orchestrate use cases •  Permissions to define Role based access to features Processes Roles
  33. 33. www.outsystems.com Page 33 © 2012 OutSystems – all rights reserved 2. Core Business Services 1. Infrastructure Services 3. Composite Application 4. Ux Orchestration Common look and feel between Applications Customer Info UX Widgets.oml • Common Theme • Page Layouts • Header Webblock • Footer Webblock • Menu Webblock Interface Logic Data • MenuItem • AddMenu • DelMenu UX Patterns Proposals Intranet
  34. 34. www.outsystems.com Page 34 © 2012 OutSystems – all rights reserved Avoid dependencies between composite applications… •  … as it generates huge application footprints and increases deployment timeProposal Builder Customer Info Proposal Account Customer Info Proposal Builder •  Isolate Core business services, improving granularity and reusability
  35. 35. www.outsystems.com Page 35 © 2012 OutSystems – all rights reserved Interface Layer 4 – UX Orchestration Mash up of composite application elements, optimizing UX for each Role. •  Single login •  Role based navigation - Main menus •  Home Pages with dashboards •  Cross application workflows •  Role management trough Users built in Application (EM on older versions) Processes Roles
  36. 36. www.outsystems.com Page 36 © 2012 OutSystems – all rights reserved Orchestration From External SaaS •  salesforce Opportunity example Go to Quoting Tool, with silent login, relating to current opportunity Display Proposal Information related to the opportunity Can download documents Sales Rep Go to Proposal builder with silent login
  37. 37. www.outsystems.com Page 37 © 2012 OutSystems – all rights reserved •  What is a Great Architecture •  Start with a Reference Architecture •  Examples and known patterns •  3 steps to design a great architecture
  38. 38. www.outsystems.com Page 38 © 2012 OutSystems – all rights reserved 3 Steps to architect a great solution 1. Disclose business needs and embedded features in used technologies. Integration technology User Stories and Roles Points:13 Must Have Information Architecture UX expectations
  39. 39. www.outsystems.com Page 39 © 2012 OutSystems – all rights reserved 1. Disclose 2. Match disclosed features against known patterns and layers. 3 Steps to architect a great solution UX PatternsComposite Applications Infrastructure Services External Service Connector Core Business Services Core Entiry Application
  40. 40. www.outsystems.com Page 40 © 2012 OutSystems – all rights reserved 1. Disclose 2. Match 3. Architect component inter- communication and services, to meet your specific needs. 3 Steps to architect a great solution Great ConceptionHappy Customer Relaxed IT
  41. 41. www.outsystems.com Page 41 © 2012 OutSystems – all rights reserved 1. Disclose 2. Match 3. Architect 3 Steps to architect a great solution
  42. 42. www.outsystems.com Page 42 © 2012 OutSystems – all rights reserved Q&A francisco.menezes@outsystems.com

×