2. Enterprise Apps = Web Apps?
Web servers Application Database
Servers Servers
Requests
from web
browsers Member
DB
Auction DB
Static pages served from web server/content management
system
Dynamic pages assembled by applications on application servers
March 1st 2012 Enterprise Applications 2
3. 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
March 1st 2012 Enterprise Applications 3
4. Hybrid 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.
March 1st 2012 Enterprise Applications 4
5. What is an Enterprise, or an
Enterprise System?
March 1st 2012 Enterprise Applications 5
6. What is a System?
Inputs Outputs
information information
control function
energy energy
internal organisation,
possibly including
material sub-systems material
Physical, chemical, biological, social systems - real-time dynamic behaviour
March 1st 2012 Enterprise Applications 6
7. An Enterprise is a System
for delivering economic & social outputs
Inputs Outputs
Information, products,
finance services
Control function
Labour, information
energy
internal organisation,
possibly including
Materials sub-systems employment,
,services financial
returns
Related pairs of inputs & outputs are often referred to as transactions
March 1st 2012 Enterprise Applications 7
8. Interesting
What 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
March 1st 2012 Enterprise Applications 8
9. An Enterprise System
is the automated part of an enterprise
= a real-time model of (part of) the enterprise
Inputs Outputs
Information, products,
finance services
Control function
Labour, information
energy
hardware/software
Materials, Enterprise System employment,
services financial
returns
automated
March 1st 2012 Enterprise Applications 9
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 March 1st 2012 Enterprise Applications 10
11. Brief History of Enterprise
Systems
March 1st 2012 Enterprise Applications 11
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
March 1st 2012 Enterprise Applications 12
13. Enterprise (Systems) Topology
All enterprises have a many-to-one relationship with their
customers – although the customer would like it to be one-to-one!
Premier
Customer
Representative
Premier Flyers
F.F.
AirlineReservations Routing Customer
function Representative
Frequent Flyer
Members
Regular
Customer
Representative
Regular
Members
14. Getting Closer to the Customer
6
5
4
System Type 1=Batch, 2=Online,
3 3=Network, 4=Web,
5=Social/mobile
2
1
0
1960s 1970s 1980s 1990s 2000s
March 1st 2012 Enterprise Applications 14
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
March 1st 2012 Enterprise Applications 15
16. How do you write applications
for Enterprise Systems?
March 1st 2012 Enterprise Applications 16
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)
March 1st 2012 Enterprise Applications 17
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
March 1st 2012 Enterprise Applications 18
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
March 1st 2012 Enterprise Applications 19
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
March 1st 2012 Enterprise Applications 20
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
March 1st 2012 Enterprise Applications 21
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.
March 1st 2012 Enterprise Applications 22
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
March 1st 2012 Enterprise Applications 23
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
March 1st 2012 Enterprise Applications 24
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
March 1st 2012 Enterprise Applications 26
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
March 1st 2012 Enterprise Applications 27
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
March 1st 2012 Enterprise Applications 28
29. Typical M Architecture 2
sync msgs
async msgs
sync msgs
Line of business
Presentation / Integration server Application and
Channel server(s) - Tight coupling Data server(s)
- Static/ Dynamic web - Loose coupling
pages - Stand-in processing
- Portals - Flow ctrl/compensation
- Channel specific
M2 = Multi-Channel, Multi-Business
March 1st 2012 Enterprise Applications 29
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
March 1st 2012 Enterprise Applications 30
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
March 1st 2012 Enterprise Applications 31
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
March 1st 2012 Enterprise Applications 32
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
March 1st 2012 Enterprise Applications 33