Information Systems

See also:

Information Systems Glossary

System

An interconnected graph of nodes linked with edges through which flow produces predictable and unpredictable behaviors.

Infrastructure

Core system components.

Information

Not noise.

See: Data Science > Information Theory, Knowledge Engineering

Information System

A system with information inputs and outputs designed to solve a problem.

Information Technology

Hardware and software information systems for solving business problems.

Application

An application of technology for a particular domain.

App

See Application

Operating System

Software for running applications and working with devices.

API

Advanced Programming Interface. A specification for inputs and outputs provided by a system component.

An API specification is specified, versioned, updated, and deprecated.

A reference implementation implements a model copy of an API.

If a component utilizes an API it is said to be written against, with, or on top of said API.

An API abstracts a lower-level in order to provide a higher-level API.

One primary advantage of an API is that, ideally, system components are loosely coupled and thus interchangeable and incrementally upgradeable.

Operating System API

An API provided by one or more Operating Systems.

Examples:

Language API

An API provided by or for one or more programming languages through a standard library or a third-party component.

Examples:

Web API

An API for interacting with local (browser) or remote (e.g. HTTP) components.

One primary advantage of a Web API is that downstream components do not need to know anything about the underlying Operating System APIs and Language APIs.

Web Service

A Web API with a formal specification.

Generally provided over HTTP, traditionally (as in the enterprisey WS-* standards) with XML, but, more recently, with JSON.

Webhook

A webhook is an HTTP message for an event.

web services and applications can send webhooks when e.g. a change occurs.

For example, when GitHub, ReadTheDocs, and Travis-CI are configured (with webhooks) a change pushed to a GitHub repository branch or pull request enqueues a build at e.g. ReadTheDocs and/or Travis-CI (and GitHub can show the build status as a linked icon).

In terms of web services, a webhook is usually just a JSON POST to a URL; with an access token.

RESTful API

A RESTful API (REST API) is a Web API that abides by best-practice guidelines for interacting with resources through standard HTTP methods like PUT/POST, GET, POST/PUT, DELETE.

Many web developers prefer RESTful APIs because the standard methods and error messages specified by HTTP are already implemented by existing, well-tested libraries available for most languages.

Criteria

seeAlso:

ROI

The investment should be justified by gains in productivity & efficiency.

Productivity & Efficiency:

output / input
returns / costs

Units and ratios:

widgets / hours ---**---> widgets/hour

** curves
reduction in {risk, error, loss} / time spent on {workflow, automation}

seeAlso:

Need / Want

Communication and collaboration are essential to success.

Maintainability

Choosing Components

  • In n-years, will I be able to find someone who can maintain this?

    • Locally? Globally?

    • Job listing keyword search [rough approximation]

    • Job board search

  • In n-years, will there still be a community supporting these components?

  • Is it open source? How do we find/pay/train someone to understand how it works?

  • Is there a non-profit software foundation behind this component?

Clouds

https://en.wikipedia.org/wiki/Cloud_computing#Service_models

Cloud Questions

  • Why would I want to run my business “in the cloud”?

  • What are our core competencies?

  • Do we need/want to run this all ourselves?

  • Would it be more safe/secure to outsource the management of these business systems?

Cloud Application Layers

SaaS

SaaS (Software-as-a-Service) is a service provision, application lifecycle, and recurring billing model for providing hosted applications.

Examples of SaaS:

PaaS

PaaS (Platform-as-a-Service) platforms offer platform APIs on top of which applications can be developed and marginally scaled if designed and developed for concurrency and asynchronicity.

Examples of PaaS Platforms:

AppEngine

Google AppEngine is an PaaS platform for developing and scaling web applications written in Python, Java, Go, and PHP.

  • AppEngine applications can interface with Google Cloud Platform Web APIs

AppScale

AppScale is a completely Open Source PaaS platform for developing and scaling web applications written in Python, Java, Go, and PHP.

adapted from https://github.com/AppScale/appscale/wiki/How-AppScale-implements-the-Google-App-Engine-APIs

AppEngine API

AppScale implementation

Datastore

AppDB { Cassandra, Thrift, Protocol Buffers }

Memcache

memcached

URL Fetch

urllib2

Blobstore API

custom server built on Tornado

XMPP

ejabberd

Channel API

ejabberd and strophejs

Mail

sendmail

Images

Python Imaging Library (PIL)

Task Queue

RabbitMQ

Cron

Vixie Cron

Search

SOLR

CloudSQL

MySQL

Users

AppScale Dashboard

Deis

Deis is an Open Source PaaS platform built on Docker and CoreOS written in Python and Go.

See also: Heroku, Kubernetes, Kubernetes-Mesos

Heroku

Heroku is a PaaS Platform.

Deis supports Heroku Buildpacks.

IaaS

Infrastructure-as-a-Service providers provide a bit more than regular hosting services in that they offer something like virtual datacenter resource pools: servers, networks, and redundant storage systems on top of which IT systems can be developed, tested, and deployed.

Examples of IaaS:

Amazon AWS

  • EC2 – Elastic Compute Cloud (CPU/GPU/RAM instances)

  • EBS – Elastic Block Store (persistent block storage)

  • S3 – Simple Storage Service (HTTP object storage)

  • SQS – Simple Queue Server

  • CloudFormation – EC2 [auto-]scaling

  • CloudFront – CDN

  • RDS: Managed MySQL, Oracle, SQL Server, PostgreSQL

  • DynamoDB: NoSQL Databases supercolumn cloud datastore

Python and AWS

Google Cloud

Google Cloud Platform (GCP) is an IaaS cloud platform.

Python and Google Cloud

Rackspace Cloud

Rackspace Cloud is an IaaS cloud platform built with OpenStack.

  • Rackspace CloudFiles is now OpenStack Swift.

  • Rackspace Cloud is powered by OpenStack.

  • Cloud Servers – OpenStack Compute

  • Cloud Load Balancers

  • Cloud DNS

  • Cloud Networks

  • Cloud Block Storage – OpenStack Cinder

  • Cloud Files – OpenStack Swift

  • CDN

  • Cloud Databases (MySQL)

  • Cloud Big Data (Hadoop)

  • Cloud Queues

  • Rackspace Auto Scale

  • Rackspace Private Cloud v4, v9, v10 (OpenStack)

Python and Rackspace Cloud

Configuration Management

https://en.wikipedia.org/wiki/Comparison_of_open-source_configuration_management_software

See: Tools > Configuration Managment

Information Security

Managing risk and uncertainty.

Standards:

See: WebSec

Confidentiality

Integrity

Availability

https://en.wikipedia.org/wiki/Service-level_agreement

Business Continuity

https://en.wikipedia.org/wiki/Business_continuity_planning

https://en.wikipedia.org/wiki/Disaster_recovery

See: Information Security (Availability)

Backups

Reliability

https://en.wikipedia.org/wiki/Redundancy_(engineering)

Scenarios

https://en.wikipedia.org/wiki/Scenario_planning

Business Systems

https://en.wikipedia.org/wiki/Online_office_suite

https://en.wikipedia.org/wiki/Comparison_of_office_suites

Google Apps

Handling Money

https://en.wikipedia.org/wiki/Transaction_processing

https://en.wikipedia.org/wiki/Payment_Card_Industry_Data_Security_Standard

Accounting

https://en.wikipedia.org/wiki/Double-entry_bookkeeping_system

https://en.wikipedia.org/wiki/Accountant

https://en.wikipedia.org/wiki/Financial_statement

https://en.wikipedia.org/wiki/Business_valuation

GNUCash

  • Free and Open Source

  • Personal Accounting

  • Small Business Accounting

Quicken

  • Personal Accounting

  • USA Version

  • International Versions

QuickBooks

Payments

Amazon Payments

Apple Pay

Google Wallet

PayPal

Square

https://squareup.com/

  • Square Reader (plugs into headphone jack)

  • Square Stand (point of sale)

  • Square Register (iOS & Android app)

  • Square Market (online store)

  • Square Appointments (online scheduling)

  • Square Feedback (customer feedback)

  • Square Analytics (sales reporting)

  • Square Capital (business funding)

  • Square Invoices (online invoicing)

  • Square Payroll (employee payroll)

Sales

See: CRM

Customer Relationship Management (CRM)

https://en.wikipedia.org/wiki/Customer_relationship_management

Business Intelligence

https://en.wikipedia.org/wiki/Business_intelligence

See: Data Science

See: Knowledge Engineering