Infosys 280 Better

Ace your homework & exams now with Quizwiz!

URI's

Identify a resource or a collection of resources. Don't say anything about action.

What are JSON and XML?

Languages used to "store"/"represent" data.

LAMP Stack

Linux, Apache, MySQL, PHP

Agile Method: SCRUM Framework (Components and Problems)

Main Components: 1. Roles: Product Owner, Team Master, SCRUM Master 2. Ceremonies: Daily SCRUM Meetings, Sprint Review (with owner), Sprint Planning (between SCRUM teams). 3. Artifacts: Product Backlog (Reqs. in prioritized form), Sprint Backlog (Break down of top priority), Burn-down chart (Graph of work to time). Problems: 1. SCRUM master job might go unfilled due to cost. 2. Absence of pilot project potential issue. 3. Work pressure an issue.

Agile Method: Extreme Programming (Main Concepts and Problems)

Main Concepts: 1. Continuous integration 2. Project Velocity 3. Pair Programming 4. User Story: Problems: 1. Spatial Issues 2. Temporal Issues 3. Cultural Issues

VCS Definition

Management of changes to documents, computer programs, large websites, and other collections of information.

Packet Switching

Messages divided into 'packets' to be sent without direct end to end communication to be made (circuit switching).

Agile Method: Agile Modelling

Modelling to develop in a quick and effective manner.

NCP

Network Control Protocol. Initial packet switching protocol used by ARPANET.

Server Side Tech

PHP, Ruby, ASP.NET, Node.JS

URI Structure

1) Protocol://ServiceName/ResourceID 2) HTTP://Myservice/Persons/1

5 URI Recommendations

1) Use plural nouns to name resources 2) Avoid using Spaces 3) URI is case sensitive 4) Implement conventions 5) Should not change

Query Parameters in URI

1) eg. http://MyService/Persons?id=1 2) Caveats: Increases complexity. Search-engine crawlers might ignore.

Cloud

1. A collection of interconnected and virtualized computers, 2. Presented as unified computing resource to provide a service to consumers.

What is JSON

1. A light-weight interchange format, 2. To store information in an organized, easy-access manner, 3. Based on ECMA-404 standard.

Grid

1. A system enabling aggregation of geographically distributed resources, 2. Depending on their availability, capability, performance and cost.

RESTful Stateless

1. All requests are independent of one another. 2. HTTP is a stateless protocol by design. 3. Does not maintain application state for any client.

Reasons for noSQL

1. Big Users (Not scalabable) 2. Big data (Structure of data etc.) 3. Internet of Things 4. Cloud Computing (Cloud is scaling out, RD's scale up)

SCRUM vs. KANBAN

1. Cadence 2. Release Methodology 3. Roles 4. Key Metrics 5. Change Philosophy

Platform as a Service

1. Capability provided is a framework for customer to build upon or customize provided applications, 2. Onto Cloud platform provided.

Infrastructure as a Service

1. Capability provided is access to resources (ie. hardware), 2. With ability to use resources as please.

Software as a Service

1. Capability provided is provider's software, 2. Running on Cloud infrastructure, 3. Available through client devices.

Cluster

1. Collection of inter-connected and stand-alone computers, 2. Working together in single integrated computing resource.

Distributed Computing

1. Components on networked computers loosely coupled, 2. To provide aggregated computing resource. 3. Communicate by messages.

REST Remoting Systems Characteristics

1. Description: Server "advertises" what is can do 2. Presentation: Programming model / data types 3. Encoding: Data types look on wire 4. Protocol: Metadata describes wire message 5. Transport: Message to/from wire 6. Security: Authentication, authorization, encryption 7. Sessions: State between messages. 8. Director: Find service 9. Activation/Ping: starting services / isAlive? 10. DGC: Distributed Garbage Collection 11. Code Mobility: Loaded on demand 12. Coupling: Degree Client / Service "know" about each other

4 Ground Rules of TCP

1. Distinct Networks stand on their own. 2. Communication of best effort basis. 3. Black boxes used to connect networks. 4. No global control.

When Agile won't Work

1. Distributed developments (Limited Support) 2. Undefined Roles (Limited Support) 3. Building reusable artifacts (Limited Support) 4. Larger teams create more comm. lines decreasing efficiency 5. Complex systems difficult to develop incrementally 6. Coding > documentation and validation 7. Lack of quality controls

Object Oriented Architecture

1. Division of responsibilities, 2. Into individual self sufficient cooperating objects.

Why is Node.JS so fast?

1. Expensive I/O moved off request thread (the traditional multi-threaded environment) - where threads were limited by RAM and expensive to create. And avoids context switching. 2. Easily write asynchronous code without heavy thread management. 3. Linkedin went from 15 with 15 instances to 4 instances that can handle 2x traffic.

Overview of XML

1. Extensible markup language good for data-representation but, 2. Not well suited to data-interchange, 3. Codes documents in a format this is both human and machine readable. 4. Based on application of SGML (ISO 887).

Service Oriented Architecture

1. Functionality provided as a set of independent services, 2. Loosely coupled.

Layered Architecture

1. Groups functionality into distinct stacked layers, 2. Related by common role.

4 Database Models

1. Hierarchical 2. Network 3. Relational Database 4. Object-Oriented

12 Principles of Agile

1. Highest Priority assigned to customer satisfaction - work with them. 2. Welcome changing requirements/circumstances. 3. Deliver frequently working software. 5. Empower and motivate dev team through self-organization. 6. Face-to-face conversation. 8. Simple sustainable development Technical excellence and good design.

Component-Based Architecture

1. Individual functional components, 2. Loosely coupled to serve separate functions, 3. that communicate through interfaces.

4 Values of Agile

1. Individuals and Interactions 2. Working Software 3. Customer Collaboration 4. Responding to Change

Node.JS Adapt Fast

1. JS across stack allows easier refactoring. 2. Smaller codebase. 3. Build fast.

Node.JS Build Fast

1. JS on server and client allows more code reuses 2. Consistent code environment for developers (lite stack) 3. Large number of offerings for web app creations

4 Types of noSQL Database

1. Key-Value Stores 2. Document Databases 3. Column Family Stores 4. Graph Databases

N-Tier/3-Tier

1. Layered architecture, 2. Each tier on a physically separate computer.

Types of VCS Structure

1. Linear Graph 2. Directed Tree 3, Directed Acyclic Graph

Source Management Models

1. Linear/Atomic operations leave system in a consistent state. 2. File locking avoids concurrent access so only one developer can edit files at a time. 3. Version mering allows developers to merge changes. 4. Baselines labels and tags identify snapshots.

Message Bus Architecture

1. Middleware that passes messages between applications, 2. so that apps don't need to understand each other.

8 Fallacies of Distributed Computing

1. Network is reliable 2. Bandwidth is infinite 4. Transport cost is zero 5. Latency is zero 6. Security 3. Topology doesn't change 7. There is one admin 8. Network is homogenous

XML Weaknesses

1. Not Light Weight 2. Not a subset of JavaScript 3. More document oriented than Object orientated.

Domain Driven Design

1. Object oriented approach based on business domains, 2. Solutions derived from business domain model.

Distributed Version Control Implications

1. P2P approach means no canonical reference code. Only working copies. 2. Common operations fast because no need to communicate with central server. 3. Peer communication only needed for pushing/pulling changes. 4. Each copy acts as a remote backup.

Software Architecture

1. Process of defining system structure, 2. To solve technical and operational requirements, 3. While optimizing performance, security, and manageability (cost + reliability).

How does REST represent data?

1. RESTful service provides access to resources and no restriction. 2. Represent resources using (JSON/XML)

REST Remote Computing Options

1. RPC (Remote Procedure Call) - Earlier systems (eg. DCE/COBRA/RMI) "simulating" single single address-space machines. 2. Web Services - SOAP (Middle Systems emphasize wire protocols), REST (current systems emphasize data exchange on wire). 3. Websockets - It's just TCP, don't reinvent above, use for real-time events.

RESTful Features

1. Representations 2. Messages 3. URIs 4. Uniform interface 5. Stateless 6. Links between resources 7. Caching 8. Documentation

5 Essential Cloud Characteristics

1. Self-Service 2. Broad Network Access 3. Dynamic Resources 4. Rapid Elasticity 5. Measurable

Parallel Computing

1. Shared computational resource tightly coupled, 2. To provide aggregated computing resource. 3. Communicate by shared resource.

XML Strengths

1. Simplicity (Less simple that JSON) 2. Extensibility (JSON has no need for it due to schema: tags) 3. Interoperability 4. Openness 5. Exchange Format (Best for Documents) 6. A range of data formats supported

JSON Strengths

1. Simplicity (More simple than XML?) 2. Interoperability 3. Openness 4. Exchange Format (Best for Data) 5. Light Weight 6. Subset of Javascript 7. Object Orientated

Client/Server Architecture

1. Splits system into 2, 2. Client and Server, 3. Client makes request, server fulfils.

3 Characteristics of TCP

1. Stream based communication. 2. Flow control by sliding windows. 3. 32bit IP addresses.

JSON Weaknesses

1. Strictness (double quotes, commas, etc.) 2. Lack of offic. support for comments 3. Readability (when formatted poorly by programmer)

Reasons for EA

1. System complexity. 2. Poor Business Alignment.

How Cloud Enhances ASD

1. Unlimited number of testing and staging services, allows for concurrent work not limited to a single server. 2. Truly parallel activity rather than serial. 3. Encourages innovation and experimentation (instances). 4. Enhances continuous integration and delivery. No waiting for tests/builds. 5. Make more development platforms and services available (S/P/IaaS) 6. Eases code branching and merging.

Node.JS Run Fast

1. Vast V8 engine. 2. Great I/O performance with event loop. 3. Small no. of layers 4. Horizontal scaling

Node.JS Community

2 Mill downloads per month, NPM 211 new modules per day, 2nd most shared project on github,

RESTful Messages

A client/server based transfer of data/metadata. HTTP Request. Code: <VERB> is a HTTP method (GET/PUT) <URI> is the URI of the resource. <HTTP Version> HTTP Protocol version <Request Header> Contains key-value pair meta data <Request Body> Contains actual body content.

Enterprise Architecture

A holistic approach to achieving business goals considering business, information, process, and technology changes necessary to execute their strategies.

What is Agile?

A software development philosophy based on agile manifesto. 4 values and 12 principles.

Node Architecture Queries

CPU intensive code? V8 performs as well as JVM. Secure/robust? All languages have vulnerabilities. Readability? Adhere to standards and best practices. Debugging? Built in debugger weak - but improvements coming.

Dynamic Content

Content created real time by HTTP requests. Server side scripting.

Static Content

Content stored on a server only changed in manually modified.

Active Content

Content that can change without a HTTP request to the server by client side scripting.

Inactive Content

Content that does not change without a HTTP request for change.

Column Family Stores

Data is stored in cells grouped into columns of data. Columns are grouped into column families. Useful for very large amounts of data.

Graph Databases

Flexible graphical representation as opposed to rigid tables and columns. Uses edges and nodes for index-free adjacency. Strengths: Relationships, spatial data, social data

REST Remoting Systems

Remoting is methods by which apps communicate, without needed to know, the system executes the other app or language other app written in.

RESTful Services

Representational State Transfer

RESTful Web Services Overview

Representational State Transfer 1. Architectural style for networked hypermedia apps. 2. Used to build web services that are lightweight, maintainable and scalable. 3. Not dependent on protocol, but usually based on HTTP.

SCRUM vs. KANBAN: Release Method

SCRUM: At end of each sprint, approved by product owner. KANBAN: Continuous delivery or at team's discretion.

SCRUM vs. KANBAN: Roles

SCRUM: Product Owner, Scrum Master, Team Master KANABN: No existing roles but maybe an agile master.

SCRUM vs. KANBAN: Cadence

SCRUM: Regular fixed length sprints KANBAN: Continuous flow

SCRUM vs. KANBAN: Change Philosophy

SCRUM: Strive not to make changes to sprint forecast during sprint. Doing so compromises leanings around estimation. KANBAN: Change at any time.

SCRUM vs. KANBAN: Key Metrics

SCRUM: Velocity KANBAN: Cycle Time

XML Characteristics

Schema = Attribute Value Pairs Serializes Data Technically Self-Describing Data Human-Readable Technically Object Orientated (But really document orientated)

JSON Characteristics

Schema = Extensible Tags Serializes Data Self-Describing Data Human-Readable Object Orientated (But really data orientated)

Document Databases

Similar to key-value but value is self describing document. Good for CMS and blogging. Weak for complex transaction.

SOAP Overview

Simple Object Access Protocol 1. A lightweight XML based protocol for exchanging information over the web. 2. Transport Protocols: HTTP, SMTP, SIP 3. Extensible: Features can be added to framework easily 4. Not tied to one programming model (eg. C/S or Message queue)

Key-Value Stores

Simple type of noSQL databse using key-pairs in a hash table. Good for basic info. Can't query by data type.

Domain Name Systems

Structured hierarchy of domains used to organize names. Client/Server.

Node.JS Overview

Tech foe Server Side Scripting, Language = JS, Engine = Google's V8, Key Benefit = Heavy Data IO web apps, Build Fast, Run Fast, Adapt Fast, Community

Imperative Programming

Telling the machine how to do something so that it will happen. (JavaScript)

Declarative Programming

Telling the machine what you would like to happen and letting the computer figure out how to do it. (SQL, HTML)

Agile Method: Test-Driven Development

Tests written before code developed.

RESTful Links Between Resources

eg. GET retrieves web page, web page contains links to other pages.

Benefits of Agile Methods

VALUES + 2. Product process is visible 4. Lightweight dev. process, eliminated additional costs and time.


Related study sets

High Yield Surgery Emma Holiday Ramahi PP

View Set

Selected Florida Statues and Rules Quiz 1

View Set

LSAT Valid/Invalid Argument Forms

View Set

Chapter 15: The Value of Synergy

View Set

Chapter 28: Caring for Clients with Heart Failure

View Set

Principals of Business Management Exam 2

View Set

Purpose of Life and Health Insurance

View Set