Download Web Based Services, Lecture Notes - Computer Science - 1 and more Study notes Computers and Information technologies in PDF only on Docsity!
Web Based Commerce 514H
Dr Kingsley Sage Room 2R308, Chichester II [email protected] © University of Sussex 2009
Lecture 1
Contents
- Teaching
- Lectures
- Labs
- Course work The need for layered systems Some definitions
- e.g. design patterns
Teaching
Introducing the fundamental ideas Pointing out the technologies Giving hands on access to the infrastructure Providing practical guidance Don’t expect to become an expert in all aspects of the course remit overnight – there is a lot of material!!! Course requires working knowledge of Java
Lectures (1)
Introducing the issues
- Layered systems
- MVC architecture
- Data management with SQL
- Technology overview (e.g. NET, J2EE …)
- J2EE framework and Enterprise Java Beans in depth
- Security
- Web services We will focus on the J2EE framework
Labs
Supervised by Simon Fleming / Kingsley Sage Individual and co-operative work Thursdays 14:00 – 16:00 weeks 2 to 10 Use labs for worksheet exercises and coursework support
Course work
Individual course work
- Assessed: 30% of course mark
- Submitted Week 7 of Spring Term
- Small individual programming exercise working with the Struts framework Group project
- Assessed: 70% of course mark
- Group work – teams of approx 5 members
- Submitted Week 2 of Summer Term
- Theme: build a working eCommerce application
- Assessment criteria: quality & communications
Course texts
No single course text covers the material for this course – see the references sections in the course notes for suggestions Lots of material available on-line (quite a lot of the course notes were derived from on-line sources) Will be making a lot of use of Enterprise Java Beans 3.0 (book by Burke and Monson-Haefel, published by O’Reilly 2006). Book on earlier EJB 2.1 of very limited/no value for this course
The need for layered systems
Our expectations of web technology have changed dramatically over the last 20 years
- From bulletin boards …
- Through to static data web sites …
- to the rise of e-commerce How many people and/or man years does it take to develop substantive new e-commerce or enterprise information systems?
A layered information system
These layers may sometimes exist only as design abstractions
- may be tangled implementations In many cases these layers are clearly identifiable and may be isolated sub-systems operating on disparate platforms
The presentation layer
Responsible for getting inputs and presenting views Could be a GUI or a service wrapper In many systems will be a web server Client and presentation layer can be combined (as in Java applets)
The application logic layer
Performs the business associated with the application e.g. banking, retail Can also be referred to as business processes, business logic or business rules
The resource management layer
Implements the application back end, providing data storage and manipulation May be interfacing with a wide range of different back end applications (e.g. SQL, Oracle, MS Access …)
Useful definitions (1)
Design patterns
- “Describes a problem which occurs over and over again and then describes the core of the solution to that problem, in such a way that you can use the solution many times over”
- “Patterns are optimal solutions to common problems. As common problems are tossed around a community and are resolved, common solutions often emerge. Eventually the best of these rise above the din and become refined until they reach the status of a Design Pattern”
Useful definitions (1)
Design patterns
- Consider the design of the control set for a motor car
- Expressive
- Provide a common vocabulary for describing a problem
- For example, design of portal sites such as Yahoo have settled into an established pattern
- How to characterise a design pattern? (see course notes)
Useful definitions (2)
Client/server
- A network architecture that separates the client (often an application that uses a GUI) from the server
- Each instance of the client can send requests to a server or application server
- Many different types of server (e.g. a a file server, mail server …)
Useful definitions (2)
Characteristics of a server
- Passive (slave)
- Waits for requests
- Upon receipt of requests, processes them and serves replies
- Can be stateless or stateful Characteristics of a client
- Active (master)
- Sends requests
- Waits for and receives server replies
- Can be fat, thin or client Interaction between client and server is often characterised using sequence diagrams
Useful definitions (5)
Persistence layer and persistence objects
- A persistence layer or persistence manager is a technology layer that conceptually resides within the resource management layer and encapsulates database access routines
- Abstraction, database independence and caching
- Queries made to a back end system are transitory
- Persistence layer maintains returned data for use by the application logic layer
- Decouples back end system
- Data is copied into persistent objects within the persistence layer
Useful definitions (6)
Application servers and containers
- Application servers provide a host for web applications (e.g. HTTP server). Can write web applications as standalone applications for the server
- A container is a program that runs web applications (e.g. Apache Tomcat, Jboss containers)
- Provide an environment for web applications, allowing you to administer the applications (e,g, access control, starting and stopping)
Useful definitions (7)
Web services
- The W3C defines a web service as a software system designed to support inter-operable machine to machine interaction over a network
- A web service is any piece of software that makes itself available over the internet and uses a standardised XML messaging system, so it does not matter what implementation is behind the service
- Typically web services use Simple Object Access Protocol (SOAP) format XML envelopes and have their interfaces described by Web Services Description Language (WSDL)
- Web services can also be used to implement a service orientated architecture, where the basic unit of communication is a message. This is often referred to as “message orientated” services
Next time …
The Model View Controller (MVC) architecture Introducing the Apache Struts framework