technology architecture school

27
TECHNOLOGY ARCHITECTURE SCHOOL Shaun C. D’Souza

Upload: others

Post on 08-Feb-2022

4 views

Category:

Documents


0 download

TRANSCRIPT

TECHNOLOGYARCHITECTURESCHOOL

Shaun C. D’Souza

• SLI Portal: League Center

• Technology Principles & Key Design Decisions

• Technology Assumptions

• Architecture Straw-man

• Execution Architecture

• Development Architecture Services Inventory

• Development Architecture – Tools

• Development Architecture Logical Environments

• Operations Architecture Services Inventory

• Operations Architecture Diagram

• Infrastructure Architecture Diagram

• Platform Architecture Services Inventory

CONTENTS

• SLI is a professional, multi-national sports league with teams in over 30 major cities

• SLI teams valued between $750 million to $1.5 billion, and profits last year ranked the highest in the sports industry

• In terms of popularity, last year over 45 million people watched an SLI game on television and over 20 million people attended an SLI game.

SLI PORTAL: LEAGUE CENTER

3

• Intelligent machines, Turing test, Web N, 10 Billion users

• Cloud computing combined with service oriented architecture (SOA) and parallel computing have influenced application softwaredevelopment.

• Parallel programs present a variety of challenges including race conditions, synchronization and load balancing overhead

• Social media, enterprise mobility, data analytics and cloud

• AI, Technology and enterprise, Virtualization, Open Source

• Machine learning, compilers, algorithms, systems

• Blockchain

• Profits and the efficient market

• Software development life cycle

• Economic – 100 Trillion market value

• Tiered industry

• Fourth industrial revolution

TECHNOLOGY PRINCIPLES & KEY DESIGN DECISIONS

URI

XML

RDF

Ontology

Logic

Proof

Trust

Semantic web stack

• Architect and design cloud applications to support multi-tenancy, concurrency management, parallel processing and service-oriented architecture supporting rest services.

• Law of accelerating returns

• Prices and margins, competition, converging global supply and demand, evolving business models

• Tier vs. batch processing, open source (availability of source code), language Java, C#, security and reliability.

• Public cloud – SaaS, PaaS, IaaS, in-house

• Numbers of users, usage model

• Structured data

• Availability of a high level software architecture specification including UML, use case diagrams. This would include the application UI (presentation layer), business logic (middle layer) and data access (data layer).

• Compiler is the glue logic for all the layers

• Collaboration on an open platform

– Web - www.internetsociety.org

– Open source

• Bitcoin cryptocurrency

• Anarchy

TECHNOLOGY ASSUMPTIONS

5

Co

mp

iler

Application

Operating System

Virtualization

Simulator

Host architecture

• Web N

– Internet protocols, XML, JSON– Web service standards, Layered SOA internet architecture– Semantic web technologies• Resource Description Framework

• Cloud computing

– Expenditure savings– Development and deployment of application platform

• Knowledge systems

– Vast repositories of structured, un-structured data• Efficient programming languages

– github• The Producer Consumer or Bounded buffer problem is an example of a multi-process synchronization challenge. It forms a

central role in any Operating system design that allows concurrent process activity. N producers, N consumers and N queues.

• The dining philosopher’s problem is another demonstration of the challenges in concurrency and synchronization.

TECHNOLOGY ASSUMPTIONS (CONTD.)

6

Producer 1 Queue 1 Consumer 1

Producer 2 Queue 2 Consumer 2

…Producer N Queue N Consumer N

AS A SERVICE CLOUD

• Platforms agnostic. Algorithms is the layer of abstraction

• Pay as you go

• Layered architecture

• Open Source

• QOS requirement are guaranteed by the tiered Cloud Service provider.

• Software as a Service (SaaS)

– Salesforce.com, Google Apps, Zoho Office

– Web Applications

7

Infrastructure as a Service (IaaS)

Platform as a Service (PaaS)

Software as a Service (SaaS)

Ven

do

r

Applications

Data

Runtime

Middleware

COMPILERS AND TRANSLATORS

• Compilers translate information from one representation to another.

• Most commonly, the information is a program

• Compilers translate from high-level source code to low-level code

• Translators transform representations at the same level of abstraction

• Windows – 50 million LOC

• Google internet services – 2 billion LOC

• Compiler

• Sequential batch architecture

• AST represents the structure of the source code

– Encodes order of evaluation

– Allows divide and conquer recursive evaluation

• Parser turns flat text into a tree

• AST is a kind of a program intermediate form (IR).

STAGES OF COMPILATION

Source code

Lexical analysis

• Token stream

Syntax analysis

• Abstract syntax tree

Semantic analysis

CONTROL FLOW GRAPH

10

a

b

c d

c

b

b

c d

c

d

b

c d

• OOP and Java have enabled enterprise system architecture

• Java is an algorithms, web and enterprise centric programming language

• It allows for deployment of applications on a host of platforms running a virtual machine

• Design once, deploy anywhere

• 3 billion mobile devices run Java - O(1) → O(N)

• Enterprise applications provide the business logic for an enterprise

• Architectures have evolved from monolithic systems, to distributed tiered systems, to Internet connected cloud systems today

INTERPRETER AND COMPILER

Example systems: g++ compiler, V8 JS

Parsing

Lowering

Interpreter

JIT compiler

Parsing

Lowering

Analysis + optimizatio

n

Code gen

Unified Modeling Language (UML)

• Class diagram

• Use case

• Sequence

Eclipse

JavaScript wavi

MODELING NOTATION

12

Tomcat MongoDB server3-tier use case diagram

ARCHITECTURE STRAW-MAN

13

Mobile Web browser

Data

Shop zone

CMS

Total stats, Inc.

Live stats, Inc.

Site analytics

Analytics

Search

UI Admin

User

REST / SO

APCognitive

SSO

REST, SOAP SERVICE

14

Authentication / Authorization

Host

Json, XML

RequestResponse

Shop zone

CMS

Total stats

Cognitive services

Cognitive agent

•UI

Client

Redundancy, Security

Service Oriented Architecture

EXECUTION ARCHITECTURE

15

User

Web browser

Mobile App

Presentation Layer

Application UI

HTML, JS, jQuery

Cognitive agent

Node.js, AngularJS

Purchase, Shopping

Cart, Payment

Meteor

SSO

Middle Layer

Cognitive Services

Java Python

Business Logic

Java Servlets,

JSP

PHP, ASP .NET

Shop zone, CMS,

Total stats

Data Layer

Data Access

NoSQL DB,

MongoDBJSON

• Large number of productivity applications, JavaScript frameworks

– AngularJS, jQuery

• Build web pages using templates

• Local Market app

– Logins via Twitter, capture photos and GPS location

– Under 1000 lines of JavaScript

– https://www.meteor.com/articles/localmarket-example-app

– meteor create --example localmarket

• Todos application

– 600 lines of JavaScript

– Collaborative task management

– https://www.meteor.com/articles/todos-example-app

– meteor create --example todos

• Built in authentication, registration

– Meteor.loginwithfacebook()

• https://atmospherejs.com

• https://github.com

METEOR

16

DEVELOPMENT ARCHITECTURE SERVICES INVENTORY

Emotion Speaker Recognition

Speech

Custom RecognitionComputer Vision

Face

Video

Cognitive Services microsoft.com/cognitive

Linguistic Analysis

Language Understanding

Bing Spell Check

Entity Linking

Knowledge Exploration

Academic Knowledge

Bing Image Search

Bing Video Search

Bing Web Search

WebLM

Text Analytics Recommendations

Bing Autosuggest

Bing News Search

Translator

https://sec.ch9.ms/sessions/build/2016/B855.pptx

Key Processes Key Tools

Program & project management Sharepoint

Server side languages Java Servlet, JSP, PHP

Client side languages HTML, JS

Database MySQL, MongoDB, Elasticsearch

Programming languages Java, C#, C++

Development standards UML

Development tools Eclipse, Visual Studio, JDeveloper

Operating system Linux

Web server Tomcat, Meteor

Visualization UI Kibana, Logstash

Configuration release management Git, Maven, Jenkins

DEVELOPMENT ARCHITECTURE – TOOLS

Interoperability

Scalability

Quality of Service

Open source

SaaS, PaaS, IaaS

Private cloud, public cloud, hybrid cloud

Service-Oriented Architecture (SOA) of Web 2.0, Web 3.0 and virtualization

Intellectual property

Site analytics, Kibana

DEVELOPMENT ARCHITECTURE LOGICAL ENVIRONMENTS

• Cloud computing

– Service Oriented Architecture (SOA)

– World Wide Web

• Requirements

– Cloud assessment

– Cloud usage patterns

• SDLC

– Architecture

– Design

– Implementation

– Testing

– Production

– Support and Maintenance

OPERATIONS ARCHITECTURE SERVICES INVENTORY

Requirements

Design

Coding Testing

Deployment

• Monolithic architecture

• Cloud computing

– Accessibility

• Programmability

• Web

• Structured data, unstructured

• Consolidate price, performance requirements as per usage constraints

• Code reuse

• Revenue, delivery deadline

• New customer, customer reviews

• Availability of compilers and code generators

• Security, reliability, vendor, control, governance and legal

OPERATIONS ARCHITECTURE DIAGRAM

N-tier, SOA

Products and services

Licensing, R&D

Open innovation, open source

Strategy vary in business needs

REVENUE

22

23

• Time, Cost and Productivity

• Distributed Complex Sourcing

• Faster Delivery of Innovation

• Increasing Complexity

• SaaS vs. PaaS

– Number of users, usage model

• Reuse of Web Services

• Agile, continuous development

• QOS is supported in tiered cloud service provider

CLOUD

• Elasticsearch is a distributed and scalable data store. It provides search and analytics capabilities with Rest services. It supports indexing of a JSON document. Input is through Logstash.

CLOUD (CONTD.)

• By 2019, 59 percent of the total cloud workloads will be Software-as-a-Service (SaaS) workloads, up from 45 percent in 2014.

• By 2019, 30 percent of the total cloud workloads will be Infrastructure-as-a-Service (IaaS) workloads, down from 42 percent in 2014.

• By 2019, 11 percent of the total cloud workloads will be Platform-as-a-Service (PaaS) workloads, down from 13 percent in 2014.

24

INFRASTRUCTURE ARCHITECTURE DIAGRAM

• Infrastructure as a Service (IaaS)

– Amazon Elastic Cloud (EC2), VMware, vCloud

Express

Use

r

Applications

Data

Runtime

Middleware

PLATFORM ARCHITECTURE SERVICES INVENTORY

• Platform as a Service (PaaS)

– Force.com, Google App Engine

– Java, Python, .NET, MySQL

• Cloud development platform

• Code reuse

• Interface design

• Purchase Application template

• Deploy application as per usage model

• https://azure.microsoft.com/en-in/pricing/calculator

• http://calculator.s3.amazonaws.com/index.html

26

User

Applications

Data

Vendor

Runtime

Middleware

• Deep Learning NLP - https://kxdocuments.accenture.com/Contribution/043a517e-046e-41ba-84e5-54643b39e32c

• AI System Challenges -https://myoffice.accenture.com/:f:/g/personal/shaun_c_dsouza_accenture_com/Ej3goWafJuJNt-hQhBf2bWsB8ktZlvbgL197svBpLmCsKA

• Computer Vision - Learn Over Coffee - https://webcast.accenture.com?eventid=34502

• Celia Chatbot Software Architecture - https://kxdocuments.accenture.com/contribution/553a4d6d-8b3a-4605-8143-2d0107637a1f

• AI Conversational Agent architecture - https://kxdocuments.accenture.com/Contribution/0574bf91-0970-4565-b3b7-1f15ea749aef

REFERENCES

27