Information Systems

See also:

Information Systems Glossary


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


Core system components.


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.


An application of technology for a particular domain.


See Application

Operating System

Software for running applications and working with devices.


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.


Language API

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



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.


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.


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.




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}


Need / Want

Communication and collaboration are essential to success.


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?


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 (Software-as-a-Service) is a service provision, application lifecycle, and recurring billing model for providing hosted applications.

Examples of SaaS:


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:


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

adapted from

AppEngine API

AppScale implementation


AppDB { Cassandra, Thrift, Protocol Buffers }



URL Fetch


Blobstore API

custom server built on Tornado



Channel API

ejabberd and strophejs




Python Imaging Library (PIL)

Task Queue



Vixie Cron






AppScale Dashboard


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

See also: Heroku, Kubernetes, Kubernetes-Mesos


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

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

Business Systems

Google Apps

Handling Money



  • 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)