Advanced Development Revision (Bournemouth Uni)
Adv. Development
Web Services
RESTful
Representational State Transfer
Much simpler than SOAP
Designed for, but not limited to HTTP
Stateless, the server stores no info about clients between requests
Request format
HTTP Verbs
POST
GET
DELETE
PUT (UPDATE)
Resource
Standard HTTP URI
e.g. http://example.com/resources/
MIME type(s) supported
XML
JSON
HTML
Traditional
SOAP
Simple Object Access Protocol
Protocol for exchanging structured information
Transport Protocols
HTTP(S)
Works well with firewalls (port 80/443)
Introduces security issues
Merges with other HTTP packets
DPI required to filter SOAP traffic
SMTP
AMQP
Advantages
Platform independent
Language independent
Flexible transport protocol
When using HTTP easy communication through firewalls
Disadvantages
Verbose, bloated definitions
Does not follow the methods of the transport protocol
DPI needed at firewalls to maintain security
WSDL
Web Services Definition Language
Used to describe web services
UDDI
Universal Discovery, Descriptiona and Interchange
Repository for WSDL documents
Listing for web services
Heavy use of XML for all processes
De Jure Standards (committee driven)
Advantages
Source data from multiple providers
Blackboxed data services
Someone else takes care of maintenance
Disadvantages
Reliant on ISP link
Difficult to debug
Data Integrity
ACID
Atomic
Ensures that transactions complete
If a transaction fails, then the data can be rolled back
Removes the possibility of half-finished transactions
Consistency
Ensures that all data meets validation rules
If it does not, transaction is rolled back
Isolation
Grants exclusivity over a field during the period of a transaction
Usually implemented using field or record locking
Durability
Once a transaction is complete and the user notified it cannot be taken back
Usually implemented using a transaction log
CIAN
Condfidentiality
Integrity
Accessibility
Nonrepeulliation
User interfaces
GUI
Point and click interface
Typically event driven
Event handlers deal with interaction
GUI code stored on client device
Typical languages
Java
C++
Objective-C
C#
Each client needs updating to latest version
Graphical User Interface
Browser
More limited interaction due to HTML/CSS/JS
UI Code stored on server
Very little client-side processing
UI Rendered by browser
No update process necessary
Lower TCO than GUI
Typical languages
UI
(X)HTML
Javascript
CSS
Logic
PHP
ASP
Coldfusion
RIA
Rich Internet Application
Hybrid of GUI/Browser Apps
Interface spec often written in XML
Shares deployment advantages of browser apps
Shares interactivity of GUI
Typical Languages
Adobe Flex (MXML)
Silverlight (XAML)
Design Patterns
2 Tier
Entangles logic and GUI
Hinders the development of new interfaces
Data/Logic may aslo be entangled
3 Tier
Separates Interface/Logic/Data
Communication between layers performed with methiods
Layers can be swapped out with damaging the others
However, Logic is quite integral
e.g. Switch from mysql -> posgres
e.g. Developemnt of a REST API alongside existing UI
MVC
Model
Data abstraction layer
Contains objects that represent data
Methods for manipulating and analysing data
Usually comes with ORM
View
Presents the data to the user
Could be a GUI, web page, RIA or an API
Controller
Handles the user input
Selects appropriate data and view
Example frameworks
Ruby on Rails
Django
MVC .NET
BPEL
Business Process Execution Layer
BPE is a Domain Specific Language