landscape of enterprise applications
DESCRIPTION
An overview of the environment in which enterprise applications operate and some architectural factors affecting their design.TRANSCRIPT
The Landscape of Enterprise Applications
- a personal view
Geoff Sharman
© [email protected]/~geoff/
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
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
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.
March 1st 2012 Enterprise Applications 5
What is an Enterprise, or an Enterprise System?
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
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
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
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
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
March 1st 2012 Enterprise Applications 11
Brief History of Enterprise Systems
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
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!
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
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
March 1st 2012 Enterprise Applications 16
How do you write applications for Enterprise Systems?
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)
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
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
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
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
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.
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
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
March 1st 2012 Enterprise Applications 25
Current Enterprise System Challenges
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
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
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
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
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
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
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
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