the ball / sos on azure part 1 - abstractiondev...client application mobile application service...
TRANSCRIPT
The Ball / SOS on Azure Part 1 Kalle Launiala, Citrus Solutions Oy
About the Presentation – Part 1
What is The Ball / SOS platform about?
“SOS” Design: Logical Architecture
“SOS” Design: Building Blocks, Master Information vs. Relations
Demo: Platform Executing on Azure
#td2013fi
About the Presentation – Part 2
Developer getting started from scratchGit clone, build, debug, deploy
Developing HTML(5) + jQuery UI on The BallDemonstrating Web / Worker Role responsibilities
The Ball – Architecture Overview & Deep Dive
#td2013fi
Régis
LaurentDirector of Operations,
Global Knowledge
Competencies include:
Gold Learning
Silver System Management
What is the Platform?
The Ball, SOS – whole package running on Windows Azure
Size of the scope?
Digital Service & Software Factory on Azure
#td2013fi
Genuine, Native, Cross-Platform
#td2013fi
What is it?
Publishing system for authorised informationWeb content
Digital content
Digital app/service development & integration
So is it like SharePoint or BizTalk or IIS?Yes
How do you install it?You don’t. Just deploy and run.
”The Ball” / ”SOS” / WTF?
”The Ball” is fundamentalOriginated from information models for storing and processing informationContext-insensitive – shapeshifter
”SOS” = ”Service Operating System”Service model supporting incarnation of ”The Ball”Authorization boundariesContext-sensitive itself – content context insensitive
ADM = Abstraction Design MethodologyEnables mainstream developer to pull off the above...
Régis
LaurentDirector of Operations,
Global Knowledge
Competencies include:
Gold Learning
Silver System Management Reality Check!
How does ”The Ball” apply for today’s tech & business?
Seeing is believing...
”git clone git://github.com/abstractiondev/TheBallOnAzure””cd TheBallOnAzure”
”gitupdateproject.cmd”
”notepad README.txt”
”The Ball” Applies & Accelerates
Core
Software
Development
Services
Information
Management
+
Collaboration
System
Integration
Services with
Master Data
Model
Business
Process + EA
Automation
Mobile
Worker
Solutions
Visual Studio 2012 & Azure: Powered by ADM
Semantic
Information
Models
Logical Business
Operations
Integration
Interfaces &
Contracts
Régis
LaurentDirector of Operations,
Global Knowledge
Competencies include:
Gold Learning
Silver System Management ”SOS” Design
”SOS” constraints on ”The Ball”
Logical Architecture is...
Constraints Given and designwise chosen
Reflecting real world and practices TODAY
Giving the boundaries for practical implementation
Generic ”App” Architecture
External Data Access Services
Internal Database Integration Synchronization
Internal Data Access Services
External Systems
External Service Access
Client To Back-End Service Layer
Business Logic Processing
Web BrowserHTML5 & jQuery
Client Application Mobile Application
Implicit or explicit; architecture is
External Data Access Services
Internal Database Integration Synchronization
Internal Data Access Services
External Systems
External Service Access
Client To Back-End Service Layer
Business Logic Processing
Web BrowserHTML5 & jQuery
Client Application Mobile Application
Service Interface- Information model- Logical Operations
Client To Server Proxy- Proxy class data model- Proxy class methods
Service Server- Implementation Structure
UI Layer- Page model- Layout model- Field model- Data binding model
Semantic UI Model- UI Information model- UI Operations
Semantic Business Logic- Information model- Logical Operations
Semantic Data Model- Information model- Logical Operations- Transactional behavior
Semantic Data Model- Information model- Logical Operations- Transactional behavior
Synchronization- Support for external readers and writers- Support for Service Based Data Access
Semantic Service Access- Information model- Logical Operations
Collaboration: Roles & Emails
People act as a role
People collaborate with other people because of their role
People trust emailsStronger trust is required for official actions
SOS enables all the above to be digitally accelerated
Information is Owned
Information has always owner
Owner does not mean ”copyright holder”However ”copyright holder” IS an owner
Owner authorizes the further use/distribution
Privacy aspect is CRITICAL
Case: Smart Traffic Privacy Issues
Where
Who + Where
Who
Separation
Where
Who
This is the problem.
Adding When makes
critical problem even more critical.
This is the only solution.
The separation MUST be
transparent, neutral party enforced and
audited.
... Applies everwhere
Where
Who + Where
Who
Separation
Where
Who
Smart Phone / GPSGovernment
AuthorityProcessing
Software running on-device needs to be audited not to
leak or fabricate information.
Software running on processing needs to be distributed (to prevent points of control) and audited not to leak or fabricate information.
This person here, should be in control of where his information is stored and by whom.
Régis
LaurentDirector of Operations,
Global Knowledge
Competencies include:
Gold Learning
Silver System Management ”SOS” Design
Implementation Decisions
Collaboration: Roles & Emails
Trusted Email Address
Collaborator
Collaborating Group
Authentication throughGoogle, Windows Live, Facebook,
Twitter, LinkedIn
The BallEcosystem
Owns& Uses
PracticalTrust
Authenticates& Trusts
Strong Authentication
CollaborationProcesses
Role Authorization& Decisions
TrustedInfra
Cloud Infra
Authorization Contexts
Role is assigned to email(does not have to exist
in the system)
Collaborator
Collaborating Group
Manyemail
addresses
Role: Moderator,Member, Visitor
Group owns the information.
Policy clearly statedbased on group rules.
DocumentsBinary/Media
Data
DocumentsBinary/Media
Data
Publiclypublished
information
AnonymousWeb Surfer
Can accesswithout login or
registration
Can access withoutauthorization
Security Boundaries Recognized
Official, Legal, Contract BoundCollaboration
GroupCo-Operative Collaboration
Group
Internal Expert
Internal Expert
Partner Role(can be a customer)
External Expert /Auditor, Acceptance
Customer Product – Joined Solutions
CollaborationInformation Flow
End Product
Drill Down to Relevance...
Users want unified experienceBased on the interface, not on the application
Applications and services are to serveFocus on usability not on ”bling-bling”
Applications need only fraction of information to operate their partAndroid apps partially use this kind of architecture
Service / Service Bus Interface
Interface definition is like pseudo-language method call
<Return value><Method name><Parameter 1><Parameter 2>...
Executing code ALWAYS knows what to call and from whereExplicit semantics apply in realityMyApp.Customer != YourApp.Customer
Client-Server Service Interfaces
Web ServicesFor App A
Listeners for App AProxies for App B
Native MobileClient
Proxy Classes
Web/HTTP ClientProxy + JavaScript UI
Web ServicesFor App B
Listeners for App B
InteropContracts
(App A with App B)
InteropContracts (App A)
InteropContracts (App A)
OccasionallyOffline Client
Proxy + Temporary Logic Routing
Agreed logical class/message structuresRequired for communication contracts
- Can be used as-is in mapping to local data structures
Service Bus Distributed Architecture
The Ball Web Facing Server
Queue Storage
Consuming/Producing
Consuming/Producing
Service Call
Pure Distributed Architecture
The Ball Web Facing Server
Service Call Queue Supporting ArchitectureCan still use servicebus, but also queue & blob storage.
Auhtorized Producer - Consumer
Providing
Secure Data
Consuming
Secure Processing
Providing
Secure Data
Consuming
Secure Processing
Owner Authorized App Integration
Models and operations can be identified to be compatible pluggable .
Conversion services can provide compatibility between various models.
Account
Collaborating Group
Owner AuthorizedContext Trust
Providing
Secure Data
Consuming
Secure Processing
Providing
Secure Data
Consuming
Secure Processing
Owner Authorized App Integration
Providing
Secure Data
Consuming
Secure Processing
Providing
Secure Data
Consuming
Secure Processing
Owner Authorized App Integration
OwnerAuthorized App
Integration
Providing Catalogues Services
Owner Authorized App Integration
App s are independent digital services.
They use common model for defining semantic information models and semantic operations.
Models and operations can be identified to be compatible pluggable .
Conversion services can provide compatibility between various models.
Converting and publication services are services among other services. Catalogues for available services are services just like others.
Régis
LaurentDirector of Operations,
Global Knowledge
Competencies include:
Gold Learning
Silver System Management
Discovering Services
Matching Consumer-Provider
Information = Real World
Digital Automated Process
Order pizzaWhat kind of a Pizza?
Pay your order
Receive your pizza
Manual Process
Order pizzaWhat kind of a pizza?
Pay your order
Receive your pizzaWhat kind of a pizza?
There s your money
There s your pizza
Real World Service Discovery
... ”Human Agreed Interfaces”
Semantic Interface Matching
Accepting the fact about implicit semanticsMyApp.Customer != YourApp.Customer
Both apps still have Class customerIntegration needs to do semantic mapping
<Return value> (semantic.namespace.included)<Method name> (semantic.ns.included)<Parameter 1> (semantic.ns.included)<Parameter 2> (semantic.ns.included)...
Hash value is used to identify matching interfacesMapping interface values as accordingly
Case ETLA: Real World Hospital
Bluetooth, Acceleration Meters, GPS to track down real world nurses
Real world processes != Consultant made processes
More info from:
http://blogs.etla.fi/palveluprosessi/
Régis
LaurentDirector of Operations,
Global Knowledge
Competencies include:
Gold Learning
Silver System Management ”SOS” Design
Building Blocks
Information Storage
Internet-of-Things
Queue StorageProcessing
Media Streaming ServersWeb Servers
Store/Retrieve
Retrieve
Queue
Send/ReceiveSecurity Context
Specific Execution
Blob Storage
Internet-of-Things
Queue,Blob Storage
Worker Roles
Media ServicesWeb Roles
Store/Retrieve
Retrieve
Queue
Send/ReceiveSecurity Context
Specific Execution
Building blocks...
Information ModelClass models with namespaces
Process ModelService method model with orchestration sequence
ADM module will concretize these to:Service Interface (platform agnostic; native code)Class model, serialized to storageNative code execution sequence
Explicitly defined, documented, trackable, auditable...
Example of Information Model
<TheBallCoreAbstraction xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:noNamespaceSchemaLocation="TheBallCore_v1_0.xsd">
<InstanceOfTheBall semanticDomainName="TheBall.CORE">
<InformationModel>
<InformationObject name="InvoiceFiscalExportSummary" designDesc="Annual export summary of invoices">
<InformationItems>
<InformationItem name="FiscalInclusiveStartDate" logicalDataType="Time_Date"/>
<InformationItem name="FiscalInclusiveEndDate" logicalDataType="Time_Date"/>
<InformationItem name="ExportedInvoices" logicalDataType="InformationObject“
informationObjectName="InvoiceCollection"/>
</InformationItems>
</InformationObject>
...
Example of Process Model
<Operation name="CreateAdditionalMediaFormats">
<OperationSpec>
<Description />
</OperationSpec>
<Parameters>
<Parameter dataType="string" name="MasterRelativeLocation" designDesc="Relative location of original" state="underDesign" />
</Parameters>
<Execution>
<SequentialExecution>
<TargetDefinition dataType="Bitmap" name="BitmapData" designDesc="Bitmap image if existing" state="designApproved">
<Parameter name="MasterRelativeLocation"/>
</TargetDefinition>
<TargetDefinition dataType="object" name="VideoData" designDesc="Videodata" state="designApproved">
<Parameter name="MasterRelativeLocation"/>
</TargetDefinition>
<MethodExecute name="CreateImageMediaFormats" designDesc="Create various media formats (if bitmap is not null)" state="underDesign">
<Parameter name="MasterRelativeLocation"/>
<Target name="BitmapData"/>
</MethodExecute>
<MethodExecute name="CreateVideoMediaFormats" designDesc="Create various video media formats (if object is not null)" state="designApproved">
<Parameter name="MasterRelativeLocation"/>
<Target name="VideoData"/>
</MethodExecute>
</SequentialExecution>
</Execution>
</Operation>
Régis
LaurentDirector of Operations,
Global Knowledge
Competencies include:
Gold Learning
Silver System Management
Master Information Management
Relations in concrete manner
Master of information recognized
Updates to master firstPopulating with subscription/monitoring
Evaluation chains topology-sortedSeries of updates updated as atomic sequence
Scales well, because context size is smallSecurity context or semantic context boundaries
Replaces traditional relationsInformation is complete at every relevant stage
Invoice Reports
InvoiceEventDetail ID: 1
Invoice Web Pages
InvoiceEventDetail ID: 2
InvoiceEventDetailMasterCollection
InvoiceEventDetailGroup ID: 4GroupName: CPU Cycles
InvoiceEventDetailGroup ID: 5GroupName: Storage Transactions
InvoiceEventDetailGroupMasterCollection
InvoiceSummaryContainer
CollectionFiltering
From Master
ReportPDF Templates Html5 + jQuery
Web Templates
Group Contains ConcreteInvoiceEventDetail items
Invoice Contains Concrete InvoiceEventDetail Item(s)
Recognized with unique IDs
InvoiceRow ID: 1
InvoiceRow ID: 2
InvoiceRowMasterCollection
InvoiceRowGroup ID: 6GroupName: External Services
InvoiceRowGroup ID: 7GroupName: Bought Products
InvoiceRowGroupMasterCollection
InvoiceUser
InvoiceUserMasterCollection
Invoice
InvoiceMasterCollection
Invoice MobileInterface
MobileApp
Templates
InvoiceFiscalExportSummary
User Interface Focused Information.
Not served as is.
Data to be exported in digital reusable form
Régis
LaurentDirector of Operations,
Global Knowledge
Competencies include:
Gold Learning
Silver System Management Demo
Platform Executing
© 2012 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries. The information herein is for informational
purposes only and represents the current view of Microsoft Corporation as of the date of this presentations. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft,
and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.
Thank you for coming!Feedback can be given via mobile or laptop through techdays.fiseminar schedule.
#td2013fi