Professional Documents
Culture Documents
W b Engineering
Web E i i
Architecture
Software architectures
architectural styles
architectural patterns
Three-layer architecture for business information systems
Web architectures
layers
JSP-Model 1/2 architecture
integration architectures
Modelling Web architectures
Core J2EE design patterns
“Architecture is the set of design decisions [...] that keeps its implementers and
maintainers from exercising needless creativity.” (Desmond F. D’Souza and Alan
C. Wills, 1999)
non-functional requirements
functional requirements performance
from customer scalability
from users reusability
… …
experience
technical constraints
existing architectures
system software
architectural styles
middleware
previous projects
legacy systems
…
…
Styles
”Style = { Elements, Form, Rationale }” (Dwayne E. Perry and Alexander L. Wolf, 1992)
independent from realisation, does not directly refer to a concrete application domain
Patterns
describe recurrent problems, their context and known solutions
solutions describe participating components and stakeholders, their responsibilities,
relationships and interplay
facilitate reuse of established design knowledge
architectural patterns: fundamental structuring mechanisms, like Model-View-Controller
(MVC)
design patterns: language-independent solutions for design problems, like Publish-
Subscribe
idioms: specific programming-language independent implementations, like Counted-
Pointer in C++
Frameworks
reusable software system with prefabricated, general implementation which can be
specialized for a ready-to-use application
describe basic architecture and functionality for an application domain
reuse of application domain knowledge
Structure
Interactions
: Client : Server
request()
request()
Structure
Interactions
: Layer 1 : Layer 2 : Layer 3
request()
request()
request()
request()
request()
Presentation
Common services
User interface
Dialog control
Database access
Data management
Database
General forces
business needs vs. construction complexity
processing style (batch, interactive)
distribution vs. performance, security, consistency
software distribution cost
Model
• encapsulate application state
• responds to state queries
• exposes application functionality
state • notifies views of changes state
query change
change
notification
(event)
view
View selection Controller
• renders the models • defines application behaviour
• requests updates from models • maps user actions to model updates
• sends user interaction to controller user • selects view for response
• allows controller to select view interaction • one for each functionality
(event)
Technological constraints
HTTP
Broad variety of technical solutions
application servers, proxies, firewalls, legacy applications
checking of quality difficult
e.g., performance depends on various components, like database, network bandwidth,
processor, memory, code, …
improvement of quality difficult
e.g., code performance may not change overall performance substantially
Technical solutions inhomogeneous and immature
short product life cycles
missing standards impede component integration from different manufactures
many solutions are open source: continuity of development, extendibility, …
Global access to Web applications
internationalization, cultural differences
Request / Response
data flow
Event
(HTTP request) Controller Set Model
Client
(Browser)
View Get
Update
(HTTP response)
Tier aspect
2-tier architectures
n-tier architectures
JSP model 2
Struts
OOHDM-Java2
integration architectures
Data aspect
database centred
document centred
multimedia data
Client tier
Client
Server tier
Client
Firewall
Proxy
presentation layer
Web server
Web server
Servlet container
Client
JSP
Enterprise
Database server
Information System
Web server
Servlet container
Client 1 Servlet
(controller) 2
Enterprise
Database server
1. user request Information System
2. create/change model
3. create/change view
4. generate output
5. server response
Web server
Servlet container
Web server
Client Controller
1
HTTPRequest
Browser parser
6 Extended view
2
1 JSP Dispatcher
(layout) 3
Model
Data
Business logic
point-to-point,
external communication (file, batch)
Workflow
delivery
direct data access for a single system
(database) Bus (Middleware)
integration
shared data storage for several systems
Adapter Adapter
Functionality
delivery
API of a legacy system Wrapper Wrapper
reconstruction
in integrated system or in legacy system
porting System 1 System n
migration of legacy systems
Browser Aggregation
Portlet 1 Portlet n
Issues
performance and scalability Web service 1 Web service n
prediction difficult
quality-of-service contracts
Content Content
Client
Web server
Content Static
additional Syndication database documents
functionalities service
(besides database
access), like billing Aggregation External
of licensing rights service databases
Partner
EntityData
concept in the business domain
LegacyView
gate to a legacy system
Store
keeping persistent information
properties for whether read-only; how data is organised (relational, object-oriented, flat
files); which kind of data is stored (content, navigation, presentation)
DAC
data access, implements mapping between stored entities and data
SingletonFunctionLibrary
special library functions
UserAgent
Web client, e.g., a browser
ClientPage
content to be presented (including input forms), e.g., HTML
makes requests to the server
ServerPage
server-side scripting, e.g., JSP
Controller
receives requests from the presentation components and resends them to the
business logic
redirects the request of navigation to the server pages
View
obtains information from the domain elements and shows the information with output
format
Process
active processing unit
hasState: stateful or stateless
isTransactional
isDistributed: accessed over the network
isShared: used in multiple sessions
isSynchronised
Entity
business objects, adding functionality to EntityData
isShared: shared in concurrent transactions
isManaged: provides access to all instances of the entity type
isDistributed: accessed over the network
ConnectionPool
manages a set of connections to stores or legacy systems
DataSource
physical connection to a store or a legacy system
isTransactional: data source allows transactions
isSecure
isRemote: network access