RealSMAReally Smart Custom Solutions!
Overview   Solutions   Concepts   MethodologyAgenda
Overview
• Allows the creation of business solutions using a  methodology running on an Application Framework  • Solution – composi...
Solution                                 Core Components              Custom           Identity and Access                ...
Specify                             Solution     Apply                Model             Meta ModelRealSMA Methodology
O   P                C   D  S                    M                    A          S   D          Objectives           Compo...
Solution                                     Implements    Application              Meta    Framework                Model...
Application     Solution         Meta model                                          Framework• Business         • Integra...
Solutions
Identity and Access                                                 Getting Things DoneManagement (Phase II)              ...
rs-iam       rs-spec• Captures application specifications in a structured way• Specification is executed from rs-spec agai...
rs-specSpecification System
• In order to capture everything that has my  Collect            attention I want..                                       ...
rs-gtdGetting Things Done
• Currently under planning                                   rs-iam• Will use Role Based Access Control:  • User  • Roles ...
rs-model• Currently  • rs-model has lower priority compared to other solutions  • Modeling is done by “manually” writing X...
Concepts                 EventCQRS   REST                Sourcing
Concepts   CQRSCommand QueryResponsibility Segregation
REST/GUI/            Presentation    SOAP-WSRead data                             Write  flow                           da...
Domain Presentation                Data                  Read + WriteTraditional 3tier Architecture
Domain        W Presentation            Updates                Data          RSeparate Reads from Writes
CQRS - Command Query Responsibility Segregation                Commands                            Domain            W  Pr...
Concepts            RESTRepresentational StateTransfer (Architecture Style)
• Components  • Origin Server, User Agent, Gateway, Proxy• Connectors  • Client - Initiates request  • Server - Responds t...
SolutionClient             Server A                    Server B                Runtime Process 1          Runtime Process ...
Client Layer                                        Web            Service        Data                                    ...
Artifact: S M ALoad balanced - Stateless
Uniform Interface                              Origin Server                                                    POST      ...
• Representations have a Media Type so that you can process  it:  • Hyper Media     • Is a representation with linking to ...
• Maps an operation to the domain model (actual resource):  •   GET - Retrieve information  •   PUT - Change something in ...
• Hypermedia  •   Media with links  •   html – Good for human consumption  •   xhtml – Well formed, good for machine to ma...
• Client / Server  • Request + Response messages• Stateless  • Each request contains all info to process the request• Cach...
Concepts                    Event                   SourcingEvent Sourcing
Order Aggregate     Cart     Line Item      Line Item   Line Item   Address    Created    Added          Added      Remove...
Order Aggregate                   • Looses information                                       • Static snapshot in         ...
Projection (BI)                    Projection (Transactional) OrdersUnpaid                                                ...
• Can travel back in time:  • New ideas can be applied to history  • Example:     • Marketing found that when item was add...
Concepts
Client                                                  rs-xxx Web Service                                                ...
REST Web Service                                                      Domain Model      View Model                        ...
MethodologySpecify   Model   Apply
O   P                       C    D  S                            M                                 A           S   D      ...
Business      Key Features                        Business    Objective   (Product Concept)                        Problem...
Organization     Sales      Marketing     IT       New       Sales     Customer      ServiceOrganization Chart            ...
President          VP Sales              VP Marketing               VP IT                     CustomerParts Sales         ...
Objectives                       Vision and                                                                    Goals Evolv...
In order to sell more products (outcome)Feature                    As the head of Web Marketing (stakeholder)  Set        ...
Story: In order to buy online As a consumerI want to have free shipping when ordersare over a certain minimum value (featu...
rs-spec/projects/{project-uri}
rs-spec/projects/{uri}/featuresets
rs-spec…/featuresets/{name}
rs-spec…/stories/{story-name}
rs-specScenarios (Executable)
MethodologyModel
/resource                                    Write Side                   POST     Operation                              ...
<ResourceList>              GET       /projects       Project List <Resource>  <Name>/projects</Name> POST          /proje...
GET     /projects             Project List                                                        (Query)     HTTP GET    ...
<Operation>              GET                             Project List                                    /projects  <Type>...
<Operation>              GET                            Project List                                                  /pro...
<Operation>                     POST      /projects     Create Project<Type>POST</Type><Aggregate>ProjectConfigPolicy</Agg...
POST   /projects        Create Project   Operation: GET /projects/@post                          “project”                ...
<Operation>                     POST      /projects      Create Project<Type>POST</Type><Aggregate>ProjectConfigPolicy</Ag...
POST   /projects        Create Project                         Post                       Operation                       ...
MethodologyApply
Application                              Runtime                              Meta Data                               Solu...
Domain Objectsrs-spec – Runtime Mac
URIs             HTTP Server Connector                 on port 8182rs-spec – Runtime Mac
derick.schoonbee@gmail.com    <EOF>
Upcoming SlideShare
Loading in …5
×

RealSMA Architecture - Concepts

1,627 views
1,527 views

Published on

Published in: Technology
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
1,627
On SlideShare
0
From Embeds
0
Number of Embeds
796
Actions
Shares
0
Downloads
0
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

RealSMA Architecture - Concepts

  1. 1. RealSMAReally Smart Custom Solutions!
  2. 2. Overview Solutions Concepts MethodologyAgenda
  3. 3. Overview
  4. 4. • Allows the creation of business solutions using a methodology running on an Application Framework • Solution – composition of core and custom web service components • Methodology - specify, model and apply • Application Framework – A runtime that runs the solutionWhat is RealSMA?
  5. 5. Solution Core Components Custom Identity and Access Management Specification Components rs-iam Specification rs-spec System Modeling Tool rs-model rs-xxx RealSMA Solution
  6. 6. Specify Solution Apply Model Meta ModelRealSMA Methodology
  7. 7. O P C D S M A S D Objectives Components People Domain ModelSpecify Model Apply Data System Functional Technical Non Functional Specification Specification Requirements RealSMA Methodology
  8. 8. Solution Implements Application Meta Framework Model runsRuntime Components
  9. 9. Application Solution Meta model Framework• Business • Integrators • Application • use the • implement the • RealSMA solution solution delivers • specify the • model with application requirements meta model runtime binariesRoles
  10. 10. Solutions
  11. 11. Identity and Access Getting Things DoneManagement (Phase II) (Phase I) Manages Users, Roles - Personal productivity and permissions II I system Run spec - Single User / No Roles rs-iam rs-gtd I Specification System Auth* (Phase I+II) rs-spec - Manages application specifications - Living documentation - Run Executable IV III specification (Continued Integration) Modeling Tool rs-model rs-xxx (Phase IV) Tools to model Custom Solution REST interface and (Phase III) Domain Model System developed using the RSMA methodology Components
  12. 12. rs-iam rs-spec• Captures application specifications in a structured way• Specification is executed from rs-spec against target system• Act as living documentation - System executes the spec and Users can also read the specSpecification System
  13. 13. rs-specSpecification System
  14. 14. • In order to capture everything that has my Collect attention I want.. rs-gtd • In order to make decisions about what I’m going Process to do about it I want.. • In order to place decisions in a trusted organized Organize place I want.. • In order to Reflect on the choices from a clear Review current and creative place I want.. Do • In order to make the best action choice I want.. • Used as a proof of concept to help drive out core requirements for the RealSMA application frameworkGetting Things Done
  15. 15. rs-gtdGetting Things Done
  16. 16. • Currently under planning rs-iam• Will use Role Based Access Control: • User • Roles • Permissions• Manages identity for multiple solutions and applications• Identity management: • List of systems and roles • Audit trail • Etc.Identity and AccessManagement
  17. 17. rs-model• Currently • rs-model has lower priority compared to other solutions • Modeling is done by “manually” writing XML • Focus is on getting core features developed for the framework and then configuring rs-model as solution (Chicken-egg dilemma)• Future: • Will model solution via web app • Deploy XML configuration from rs-modelModeling Tool
  18. 18. Concepts EventCQRS REST Sourcing
  19. 19. Concepts CQRSCommand QueryResponsibility Segregation
  20. 20. REST/GUI/ Presentation SOAP-WSRead data Write flow data flow Domain Business Logic / Application Server Data Data Access Later / ORM DatabaseTraditional 3tier Architecture
  21. 21. Domain Presentation Data Read + WriteTraditional 3tier Architecture
  22. 22. Domain W Presentation Updates Data RSeparate Reads from Writes
  23. 23. CQRS - Command Query Responsibility Segregation Commands Domain W Presentation A-Sync / Sync Data R QueriesCQRS as an ArchitectureStyle
  24. 24. Concepts RESTRepresentational StateTransfer (Architecture Style)
  25. 25. • Components • Origin Server, User Agent, Gateway, Proxy• Connectors • Client - Initiates request • Server - Responds to request• Data Elements • Resources + Resource Identifiers (URI) • All interesting bits of information are identified with URIs and 
are usually accessed via URL • Representations, Meta Data, Control Data • Manipulation of resources happens with representationsArchitectural Elements
  26. 26. SolutionClient Server A Server B Runtime Process 1 Runtime Process 1 HTTP Component Component HTTP In Memory Component IPC Runtime Process 2 Native/ODBC Component (Not REST) DatabaseComponents +Connectors
  27. 27. Client Layer Web Service Data Layer Layer Layer User Agent cloud1.realsma.com Amazon Load Balancer Web app Web service HTTP HTTP Amazon RDB cloud2.realsma.com Web app Web serviceLayered Components
  28. 28. Artifact: S M ALoad balanced - Stateless
  29. 29. Uniform Interface Origin Server POST /resource-uri Commands + Queries Server ConnectorClient Connector PUT /resource-uri Domain Hyper Media Objects GET /resource-uri (Read + Write HEAD /resource-uri/{variable} Model) $ $ DELET E /resource-uri/{variable} Connector + Resource Server Operations Cache Identifiers ResourcesData Elements
  30. 30. • Representations have a Media Type so that you can process it: • Hyper Media • Is a representation with linking to other media • Eg. application/xhtml+xml (if you add links) • Regular Media (No links) • application/zip • application/javascript • audio/mpeg • image/gif • text/csv • application/vnd.ms-excel • application/x-www-form-urlencoded • application/xhtml+xml (without links)Data Element - Representation
  31. 31. • Maps an operation to the domain model (actual resource): • GET - Retrieve information • PUT - Change something in the domain • DELETE - Remove something • POST - Add something to a list of things• Identified by a URI • Very cheap to generate • Can be any concept in the domain• URL: http://example.com/cusomter/{id}/addresses• URI: /customer/{id}Data Element - Resource
  32. 32. • Hypermedia • Media with links • html – Good for human consumption • xhtml – Well formed, good for machine to machine • xml + links – e.g. Atom • json + links• Hypermedia as the engine of application state: • Only need to know entry point URI • Links are state transitions - just “follow the links” • State of application on client (like State Machine) • Discover the Domain Application Protocol (DAP) • User Agent are decoupledData Element - Hypermedia
  33. 33. • Client / Server • Request + Response messages• Stateless • Each request contains all info to process the request• Cache • Content marked as non-cacheable and cacheable (HTTP Headers)• Uniform Interface • Interaction with resources through a standardized set of operations, with well understood semantics (GET,PUT,POST..)• Layered System • Separates concerns. Hides complexity behind.• Code-On-Demand (Optional constraint) • Java scripts, Flash, Java AppletsConstraints
  34. 34. Concepts Event SourcingEvent Sourcing
  35. 35. Order Aggregate Cart Line Item Line Item Line Item Address Created Added Added Removed Added• Mature industries use events – e.g. Financial Ledger• Changes to the system can be represented by a series of domain events (Event Stream)• Aggregates are reconstructed from an Event Stream• “No” information loss, we collect ALL Domain events• All events a kept in an Event Store since we not know value of data laterEvent Sourcing
  36. 36. Order Aggregate • Looses information • Static snapshot in Order timeAddress Line • Will you use a bank 1..1 0..N Item that shows only balance?Structural Model
  37. 37. Projection (BI) Projection (Transactional) OrdersUnpaid Order LineOrdersPerCity .. Address .. 1..1 0..N Item Replay Stream Cart Line Item Line Item Line Item Address Created Added Added Removed Added Event Sourcing – Rebuild Projections
  38. 38. • Can travel back in time: • New ideas can be applied to history • Example: • Marketing found that when item was added and then removed from cart, customer will be more likely to purchase in the future. • Thus, propose the item to customer on next purchase. • Can now replay events to propose products, with structural model this information would have been lost.• Can create any structural model• Found a bug? • Reload Commands and Events • See status as it was at a point in timeEvent Sourcing
  39. 39. Concepts
  40. 40. Client rs-xxx Web Service Domain Model Event Store Command Hyper Media REST Server REST Client Events BI Query View Model (Projection) XRealSMA = REST+CQRS+ES
  41. 41. REST Web Service Domain Model View Model Create ManagePOST /projects Project Project Aggregat Table: e project-GET /projects Project List Composition listGET /projects/{uri} Project Details Composition Add Goal toPOST /projects/{uri}/goals Project Table: project-goalsDELET /projects/{uri}/goals/{nam Deactivate E e} Goal CommandsOperations URI Events and Queries RealSMA = REST+CQRS+ES
  42. 42. MethodologySpecify Model Apply
  43. 43. O P C D S M A S D Objectives Components Runtime • Objectives Model • Resources • Key Features • Operations People Domain ModelSpecify Model Apply • Organization • Commands • Process Flow • Events • Use Cases • Aggregates Data • Projections / Queries • Business Data • Data Dictionary System • Context Map • System Flow Functional Technical Non Functional Specification Specification Requirements RealSMA Methodology
  44. 44. Business Key Features Business Objective (Product Concept) Problem 2 Business Feature Business Objective Objective FeatureBusiness BusinessProblem 1 Problem 3 Business Feature Business Objective Objective Feature Business Problem 4 Feature Business Objective Objectives Model S M A O P S D Specify - Objectives
  45. 45. Organization Sales Marketing IT New Sales Customer ServiceOrganization Chart S M A O P S D Specify - People
  46. 46. President VP Sales VP Marketing VP IT CustomerParts Sales Marketing Service IT Manager Manager Manager Manager Product Parts Sales Rep CSR BA Manager Consultant ArchitectOrganization Roles S M A O P S D Specify - People
  47. 47. Objectives Vision and Goals Evolving Documentation System (Purpose) Objective Objective Objective (Metric) (Metric) (Metric) Feature Feature Feature Feature Use Process People … Case… Flow... Requirem Requirem … ent… ent… System + Data Scenario .. …Specify - Integrator View
  48. 48. In order to sell more products (outcome)Feature As the head of Web Marketing (stakeholder) Set I want consumers (stakeholder) to order goods online and have them delivered In order to buy online As a consumer I want to be able to search some goods in a catalog Pulled Stories In order to.. As a consumer I want to be able to put goods in a basket and order the basket In order to.. As a consumer I want to have a choice of delivery options In order to.. As a consumer I want to have free shipping when orders are over a certain minimum value Feature Set
  49. 49. Story: In order to buy online As a consumerI want to have free shipping when ordersare over a certain minimum value (feature)Scenario: Super ShippingGiven min value of 50€ And my order total is 49.99€,When I check out,Then shipping charge is 1 000.00€Scenario: Free ShippingGiven min value of 50€ And my order total is 50€,When I check out,Then shipping charge is 0€ • Stories pull QAs to create scenarios Executable Scenarios
  50. 50. rs-spec/projects/{project-uri}
  51. 51. rs-spec/projects/{uri}/featuresets
  52. 52. rs-spec…/featuresets/{name}
  53. 53. rs-spec…/stories/{story-name}
  54. 54. rs-specScenarios (Executable)
  55. 55. MethodologyModel
  56. 56. /resource Write Side POST Operation Aggregate Root GET Form Entity @ map Command map Entity ControlServer Connector Property Control /location Property Read Side GET Operation Events Projector Composition SQL Query (Query/Command) View SQL Query (SQL Table) CompositionModeling Blocks
  57. 57. <ResourceList> GET /projects Project List <Resource> <Name>/projects</Name> POST /projects Create Project <OperationList> <Operation> <Type>POST</Type> <Name>CreateProject</Name> … <Operation> <Operation> <Type>GET</Type> <Name>ProjectList</Name> … <CompositionList>…</CompositionList> <Operation> </OperationList> </Resource> <Resource>…</Resource> …</ResourceList>Resources + Operations
  58. 58. GET /projects Project List (Query) HTTP GET Command Query Command Composition (Options) Query Composition Hypermedia Reference (Link) Web TemplateGET Operation
  59. 59. <Operation> GET Project List /projects <Type>GET</Type> … (Query) <CompositionList> Command Query <Composition> <Name>ListOfProjectCommands</Name> <Type>Command</Type> <OptionList> <Option> <Uri>/projects</Uri> POST / projects <Operation>POST</Operation> <Redirect>/projects/{Aggregate:uri}</Redirect> </Option> </OptionList> Redirect User Agent </Composition> after creation <Composition>…</Composition> …GET - Command Composition
  60. 60. <Operation> GET Project List /projects <Type>GET</Type> … (Query) <CompositionList> Command Queryselect * from <Composition> project_list <Name>ProjectList</Name> <Type>Query</Type> <Table>project_list</Table> <QueryType>List</QueryType> <Class>project-list<Class> <ColumnList> project_list.project_name <Column> <Value>project_name</Value> <HRef>/projects/{project_name}</HRef> … <Column> Hypermedia </ColumnList> Reference (Link) </Composition> <Composition>…</Composition> … GET - Query Composition
  61. 61. <Operation> POST /projects Create Project<Type>POST</Type><Aggregate>ProjectConfigPolicy</Aggregate><Command>CreateProject</Command> … Renders as Html form <ControlList> with inputs <Control> <Label>Project Name:</Label> <Name>project</Name> <Type>text</Type> </Control> <Control> <Label>What the project should accomplish:</Label> <Type>textarea</Type> <Name>vision</Name> </Control> <Control>…</Control> … </ControlList> …POST - Controls
  62. 62. POST /projects Create Project Operation: GET /projects/@post “project” Control Operation: POST /projects Command: CreateProjectPOST - Controls (Form)
  63. 63. <Operation> POST /projects Create Project<Type>POST</Type><Aggregate>ProjectConfigPolicy</Aggregate><Command>CreateProject</Command> … <ControlList> … </ControlList> <MapControlList type=“list”> <MapControl name="{uri:name}">Uri</MapControl> <MapControl name="name">Name</MapControl> <MapControl name="vision">Vision</MapControl> <MapControl name="value">Value</MapControl> </MapControlList > … Control names Command Properties</ControlList> …POST - Maps Controls
  64. 64. POST /projects Create Project Post Operation Controls Controls mapped to Domain CommandPOST - Processed
  65. 65. MethodologyApply
  66. 66. Application Runtime Meta Data Solution (Web Service) Web App Template and images Domain Objectsrs-spec – Runtime Win32
  67. 67. Domain Objectsrs-spec – Runtime Mac
  68. 68. URIs HTTP Server Connector on port 8182rs-spec – Runtime Mac
  69. 69. derick.schoonbee@gmail.com <EOF>

×