landscape of enterprise applications

33
The Landscape of Enterprise Applications - a personal view Geoff Sharman © [email protected] www.dcs.bbk.ac.uk/~geoff/

Upload: geoff-sharman

Post on 19-May-2015

532 views

Category:

Business


0 download

DESCRIPTION

An overview of the environment in which enterprise applications operate and some architectural factors affecting their design.

TRANSCRIPT

Page 1: Landscape of enterprise applications

The Landscape of Enterprise Applications

- a personal view

Geoff Sharman

© [email protected]/~geoff/

Page 2: Landscape of enterprise applications

March 1st 2012 Enterprise Applications 2

Enterprise Apps = Web Apps?

Static pages served from web server/content management system

Dynamic pages assembled by applications on application servers

Member DB

Auction DB

Web servers

Requests from web browsers

Application Servers

Database Servers

Page 3: Landscape of enterprise applications

March 1st 2012 Enterprise Applications 3

Did you do any of these today?Did you do any of these today?

Buy something in a supermarket?Buy a ticket for travel or entertainment?Make a telephone call (mobile or fixed)?Use a cash machine or debit card?Pay for something with a credit card?Use electricity, gas or water?

The chances are you used a traditional online transaction system (running on a mainframe?)

→ Which had nothing to do with the Internet

Page 4: Landscape of enterprise applications

March 1st 2012 Enterprise Applications 4

Hybrid Enterprise SystemsHybrid Enterprise Systems● Many systems have an Internet front end

connected to a applications and data running on an online transaction system back end, eg.– Airline flight bookings– Utility billing systems– Supermarket home delivery systems– Internet banking– Etc.

Page 5: Landscape of enterprise applications

March 1st 2012 Enterprise Applications 5

What is an Enterprise, or an Enterprise System?

Page 6: Landscape of enterprise applications

March 1st 2012 Enterprise Applications 6

What is a System?

OutputsInputs

information

energy

material

information

energy

material

internal organisation,possibly including

sub-systems

Physical, chemical, biological, social systems - real-time dynamic behaviour

control function

Page 7: Landscape of enterprise applications

March 1st 2012 Enterprise Applications 7

An Enterprise is a Systemfor delivering economic & social outputs

OutputsInputs

Information, finance

information

employment,financial returns

products,services

Labour, energy

Materials ,services

Control function

Related pairs of inputs & outputs are often referred to as transactions

internal organisation,possibly including

sub-systems

Page 8: Landscape of enterprise applications

March 1st 2012 Enterprise Applications 8

InterestingWhat is an Enterprise?

Large numbers of customers Large numbers of transactions Large financial throughputs Complex behaviour/operations Sustainable operation

High scale for an extended period

Page 9: Landscape of enterprise applications

March 1st 2012 Enterprise Applications 9

An Enterprise Systemis the automated part of an enterprise

= a real-time model of (part of) the enterprise

OutputsInputs

Information,finance

information

employment,financial returns

products,services

Labour, energy

Materials, services

Control function

hardware/softwareEnterprise System

automated

Page 10: Landscape of enterprise applications

March 1st 2012 Enterprise Applications 10

Where would you find an ES? Probably not here: (primary industry, 5% of economy)

Agriculture, fisheries, forestry, water extraction Mining, oil & gas extraction

Possibly here: (secondary industry, 40% of economy)

Construction, utilities Transport, distribution, communications Manufacturing (discrete & continuous)

Probably here: (tertiary industry, 55% of the economy)

Financial & business services, media, retail Education, healthcare, tourism, entertainment Public admin

10

Page 11: Landscape of enterprise applications

March 1st 2012 Enterprise Applications 11

Brief History of Enterprise Systems

Page 12: Landscape of enterprise applications

March 1st 2012 Enterprise Applications 12

Pioneers of Enterprise Systems 1952 – Joe Lyons & Co. Leo system

- batch accounting & payroll operations 1965 – American Airlines Sabre system

- online flight reservations & check in 199x – Amazon.com, eBay.com

- direct customer service, just-in-time delivery 2001 – Google.com

- customised search using large amounts of data 2008 – Apple iPhone

- mobile applications

Page 13: Landscape of enterprise applications

Enterprise (Systems) Topology

Premier Flyers

Frequent Flyer Members

Regular Members

AirlineReservations Routing function

PremierCustomer

Representative

F.F.Customer

Representative

RegularCustomer

Representative

All enterprises have a many-to-one relationship with their customers – although the customer would like it to be one-to-one!

Page 14: Landscape of enterprise applications

March 1st 2012 Enterprise Applications 14

Getting Closer to the Customer

1960s 1970s 1980s 1990s 2000s0

1

2

3

4

5

6

System Type 1=Batch, 2=Online, 3=Network, 4=Web, 5=Social/mobile

Page 15: Landscape of enterprise applications

March 1st 2012 Enterprise Applications 15

What were the Key Innovations? 1950s – main storage (delay lines, ferrite cores),

secondary storage (magnetic tape), batch job scheduler

1960s – operating system, direct access storage, database management, time sharing terminals

1970s – TP monitor, relational database 1980s – personal computer, networking 1990s – World Wide Web 2000s – search engine, social networking, mobile

Page 16: Landscape of enterprise applications

March 1st 2012 Enterprise Applications 16

How do you write applications for Enterprise Systems?

Page 17: Landscape of enterprise applications

March 1st 2012 Enterprise Applications 17

Programming Paradigms

Enterprise applications have to serve large numbers of users concurrently

This requires lots of program code to support

communications, scheduling, concurrency and data access

Programmers can't write all this code for each new

application, so they use frameworks based on a number of programming paradigms (aka design patterns)

Page 18: Landscape of enterprise applications

March 1st 2012 Enterprise Applications 18

Time Sharing/Conversational At logon time, operating system allocates:

Memory address space for user application Operating system process Files, communications channels, etc. These remain dedicated to user until logoff

Paradigm is widely used in programming

development systems, but: Limited sharing of resources Not scalable beyond a few hundred users So not useful for production systems

Page 19: Landscape of enterprise applications

March 1st 2012 Enterprise Applications 19

Transaction Processing Monitor Monitor acquires & retains shared resources

Applications, memory, processes, threads, files, databases, communication channels, etc.

On receipt of transaction request, provides concurrent access to resources

Frees resources when output message sent So application is one-in-one-out, or implements

a “pseudo conversation”

Highly scalable to tens of thousands of users Requires stateless application programming Conversation state held in “scratchpad” files

Page 20: Landscape of enterprise applications

March 1st 2012 Enterprise Applications 20

What are Stateless Applications?

REQUEST: find information about “flights” RESPONSE: list of links to flight web sites TRANSACTION: request + response

FINAL STATE: all memory of transaction lost; next request starts with a clean sheet

PSEUDO CONVERSATION: chain of transactions

linked by scratchpad data

Page 21: Landscape of enterprise applications

March 1st 2012 Enterprise Applications 21

Representational State Transfer Underlying paradigm for Web hypertext

applications Commonly abbreviated as REST Web servers manage network & provide

concurrent access Defines stateless clients for rendering data Highly scalable to 10s of thousands of users

Pure REST does not define how to build update applications on the Web, so we have to modify

Disallows “cookies” - no scratchpad Does not define server application model

Page 22: Landscape of enterprise applications

March 1st 2012 Enterprise Applications 22

Google Applications Underlying paradigm for Google search and

other applications Uses GAE (Google App engine) Requires stateless clients Concurrent access to “scratchpad” storage via

GFS/BigTable Highly scalable to 10s of thousands of users

Especially suitable for applications using read-only data, e.g. search data, maps, etc.

Page 23: Landscape of enterprise applications

March 1st 2012 Enterprise Applications 23

Why do these Paradigms Work? All these paradigms embody the many-to-one

relationship between customers and the enterprise

The TP, REST, & Google paradigms provide scalable concurrency & enable the enterprise to exploit economies of scale

But none of them is a complete recipe for what modern enterprise systems need

Page 24: Landscape of enterprise applications

March 1st 2012 Enterprise Applications 24

What Paradigm is Needed? Stateless applications provide the highest

scalability and work well for read only requests

But commercial applications, e.g. web shopping, need conversation state & concurrent update

Use HTTP because it supports any-client-to-any server, unlike object-based protocols

Hold state on client or replicated server file system

Collect updates that form part of a transaction Permanently save data at end of conversation

Page 25: Landscape of enterprise applications

March 1st 2012 Enterprise Applications 25

Current Enterprise System Challenges

Page 26: Landscape of enterprise applications

March 1st 2012 Enterprise Applications 26

Enterprise Business Challenges

Business people care about two main objectives: Reducing costs:

automating/eliminating internal processes reducing operating costs for enterprise systems reducing ownership costs for enterprise

systems

Increasing revenue: Winning new customers Retaining existing customers Getting more business from existing customers

Page 27: Landscape of enterprise applications

March 1st 2012 Enterprise Applications 27

Enterprise System Challenges

1) Multi-channel applications- acting consistently to the customer

2) Multi-business service- providing multiple offers consistently

3) Effective customer knowledge- acting more intelligently to the customer

4) Effective market knowledge- foreseeing what customers will want next

Page 28: Landscape of enterprise applications

March 1st 2012 Enterprise Applications 28

Multi-Channel Applications Many enterprise systems are designed to

support particular sales channels, eg.: Store checkout systems Kiosk/ticketing systems Call centre systems Web based systems Mobile systems

Business offer may depend on channel, but Applications should treat the customer

consistently, whichever channel he/she uses

Page 29: Landscape of enterprise applications

March 1st 2012 Enterprise Applications 29

Presentation /Channel server(s)- Static/ Dynamic web pages- Portals- Channel specific

Integration server- Tight coupling- Loose coupling- Stand-in processing- Flow ctrl/compensation

Line of businessApplication and Data server(s)

sync msgsasync msgs

sync msgs

Typical M2 Architecture

M2 = Multi-Channel, Multi-Business

Page 30: Landscape of enterprise applications

March 1st 2012 Enterprise Applications 30

Customer Knowledge Many web systems allow customer to explore

options before & after a transaction: high “browse to buy” ratio in web shopping evaluations of product, service, etc.

If we identify the customer, we can study:

search patterns history of actual transactions customer likes & dislikes

May enable better offers to the customer

need more data & real time parallel computation

Page 31: Landscape of enterprise applications

March 1st 2012 Enterprise Applications 31

Market Knowledge Many enterprise systems collect data about a

mass of customer transactions: Collected/refined in data warehouse Linked with tools for analytics / Bus Intelligence Used to produce periodic reports & analyses

This process may be ineffective:

Too slow/costly for business needs Only structured data – much unstructured data New methods use very large data sets

Best practice uses highly parallel processing

Page 32: Landscape of enterprise applications

March 1st 2012 Enterprise Applications 32

“Highly Parallel” Processing Google is the best known exponent

Many processes crawling the Web in parallel Combine results using MapReduce technique Store results in Google File System Substitutes concurrency for parallelism

Also widely used in scientific applications, eg:

– SETI @Home used subscriber PCs– IBM “Blue Gene” protein modelling project 4K processors generated 10 μsec simulation Uses hardware cluster plus GPRS

Page 33: Landscape of enterprise applications

March 1st 2012 Enterprise Applications 33

Summary When building an Enterprise System, we are

building a model of (part of) the enterprise: Model must be real time and scalable Customer can use anywhere, anytime, any device Access any business offering consistently Know and respond intelligently to each customer

Also need a “Meta-Enterprise System” (i.e.

control function) which analyses ES & the behaviour of customers

Detect trends and respond to them