The Ball Launch on 2013 Microsoft TechDays Part 1/2

61
The Ball / SOS on Azure Part 1 Kalle Launiala, Citrus Solutions Oy [email protected] #td2013f i

Transcript of The Ball Launch on 2013 Microsoft TechDays Part 1/2

The Ball / SOS on Azure Part 1

Kalle Launiala, Citrus Solutions [email protected]#td2013f

i

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égisLaurentDirector of Operations, Global KnowledgeCompetencies include:Gold LearningSilver System Management

What is the Platform?

#td2013fi

The Ball, SOS – whole package running on Windows AzureSize of the scope?

Digital Service & Software Factory on Azure

#td2013fi

Genuine, Native, Cross-Platform

#td2013fi

What is it?

Publishing system for authorised informationWeb contentDigital contentDigital 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égisLaurentDirector of Operations, Global KnowledgeCompetencies include:Gold LearningSilver System Management

Reality Check!

#td2013fi

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

Visual Studio 2012 & Azure: Powered by ADM

Semantic Information

Models

Logical Business Operations

Integration Interfaces & Contracts

RégisLaurentDirector of Operations, Global KnowledgeCompetencies include:Gold LearningSilver System Management

”SOS” Design

#td2013fi

”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 3When3makes

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égisLaurentDirector of Operations, Global KnowledgeCompetencies include:Gold LearningSilver System Management

”SOS” Design

#td2013fi

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

3Cloud3Infra

Authorization Contexts

Role is assigned to email(does not have to exist

in the system)

Collaborator

Collaborating Group

Manyemail

addressesRole: 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

3The Ball3Web Facing Server

Queue Storage

Consuming/Producing

Consuming/Producing

Service Call

Pure Distributed Architecture

3The Ball3Web 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 3pluggable3.

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

3App3s 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 3pluggable3.

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égisLaurentDirector of Operations, Global KnowledgeCompetencies include:Gold LearningSilver System Management

Discovering Services

#td2013fi

Matching Consumer-Provider

Information = Real World

Digital Automated ProcessOrder pizzaWhat kind of a Pizza?Pay your orderReceive your pizza

Manual Process

Order pizzaWhat kind of a pizza?Pay your orderReceive your pizza

What kind of a pizza?

ThereFs your money

ThereFs 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égisLaurentDirector of Operations, Global KnowledgeCompetencies include:Gold LearningSilver System Management

”SOS” Design

#td2013fi

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égisLaurentDirector of Operations, Global KnowledgeCompetencies include:Gold LearningSilver System Management

Master Information Management

#td2013fi

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égisLaurentDirector of Operations, Global KnowledgeCompetencies include:Gold LearningSilver System Management

Demo

#td2013fi

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.fi seminar schedule.

#td2013fi