Web Applications. Software Engineering 2017 Alessio Gambi - Saarland University

Size: px
Start display at page:

Download "Web Applications. Software Engineering 2017 Alessio Gambi - Saarland University"

Transcription

1 Web Applications Software Engineering 2017 Alessio Gambi - Saarland University Based on the work of Cesare Pautasso, Christoph Dorn, Andrea Arcuri, and others

2 ReCap

3 Software Architecture A software system s architecture is the set of principal design decisions made about the system. N. Taylor et al. Abstraction Communication Visualization and Representation Quality Attributes

4 What designers want Every system a software architecture has

5 Design Architectural Styles Architectural Patterns Building Blocks - Software Components - Component API/Interfaces - Software Connectors

6 Send a HTTP request, and get back a HTML page which will be visualized in the Send HTTP request, and get HTTP response containing the HTML page Browser visualizes it

7 Client/Server Many clients, active, close to users One server, passive, close to data Single point of failure, scalability Security, scalability

8 HTTP The Hypertext Transfer Protocol

9 HTTP The Hypertext Transfer Protocol Connector or Component?

10 HTTP The Hypertext Transfer Protocol Connector or Component? Synch or Asynch?

11 HTTP The Hypertext Transfer Protocol Connector or Component? Synch or Asynch? Stateful or stateless?

12 HTTP Request Action: verb, express the intent Headers: meta-data Body: optional, can be anything, a stream of bytes, form data, session information, etc.

13 HTTP Actions Have precise semantic, and a web application might not implement all of them GET retrieve a resource POST send data and/or create a resource PUT replace an existing resource DELETE delete a resource HEAD retrieve HEADers but not body OPTIONS check the methods available on the resource Web applications must to implement the semantic right

14 HTTP Response Headers and status Status codes, organized in families: 1xx: information 2xx: success 3xx: redirection 4xx: user error 5xx: server error Delivers a resource: a page HTML, a CSS file for the style, images, JS libraries, etc.

15 HTTP Body Transfer the main part of the data, but not the only way to send data query params, custom headers Required in POST and PUT requests Required in responses to GET requests HEAD must not provide one

16 HTML The Hypertext Markup Language

17 Resources One request per resources, multiple requests in parallel All requests must complete before a page is fully displayed

18 Static vs Dynamic Pages Static: Files are served as they are (index.html) content does not change

19 Static vs Dynamic Pages Static: Files are served as they are (index.html) content does not change Dynamic: The HTML (or part of it) is generated upon request based on data

20 State-Logic-Display cluster elements that change at the same rate

21 Server-Side HTML Rendering The HTML page is created on the server and sent back to the client Overhead in processing each request if the page is created from scratch Same content for different displays Desktop vs Tablet vs Mobile

22 Presenter-View extract the content from the model to be presented from the rendering into screens/web pages

23 Server-Side HTML Rendering Based on HTML templates that mix together HTML tags, data, and code

24 Server-Side HTML Rendering Based on HTML templates that mix together HTML tags, data, and code Different technologies: PHP scripts index.php JavaServer Faces (JSF) index.xhtml Embedded Ruby (ERB) index.html.erb

25

26 Server-Side HTML Rendering Based on HTML templates that mix together HTML tags, data, and code Different technologies: PHP scripts index.php JavaServer Faces (JSF) index.xhtml Embedded Ruby (ERB) index.html.erb Templates do not necessarily target the entire page and they might not be stored in files

27 Components

28 Content Management Systems (CMS)

29

30 Design

31 3-Tier Architecture Presentation Web Browser Business logic Data source Front End App Server Back End

32 Layered (Style) Communications 1 layer up/down Information hiding, no circular deps Possibly bad performance Good evolvability

33 What run where? thin-client fat-client

34 3-Tier Architecture Presentation Web Browser Business logic Data source Front End App Server Back End

35 Data Layer Back End Persistence Storage

36 A Mapping Problem Domain model Data storage

37 Domain Model Represent concepts in the domain and their relations, not as rows in a database Network of interconnected concepts Abstract Data Type data and the behavior

38 Storage model How to store data? Key-Value Model list of keys and values (hashtable style) Relational Model traditional SQL model Document-oriented Model schema-less documents Graph-oriented Model data is stored as an interconnected graph

39 Key-Value Implement a map Values have no schema

40 Relational Set-theory Collection of tables with rows and columns

41 Document-oriented Data stored in document but not relations Extends Key-Value

42 Graph-oriented Data stored as network graph Relations first-class citizens

43 Polyglot Persistence Multiple ways to store data Financial Data Relational Reporting Product Catalog Document KeyValue User Sessions Recomme ndation Graph Shopping Cart

44 3-Tier Architecture Presentation Web Browser Business logic Data source Front End App Server Back End

45 Application Layer App Server Data access, navigation, and persistence Data processing (Business logic)

46 Plugin Explicit extension points Static/Dynamic composition Low security (3rd party code) Extensibility and customizability

47 A Different Problem (?) Programming Language Storage Architecture

48 Data Access API REST API REST API Object-based storage (e.g. S3) Relational Database (e.g. MySQL) Add an abstraction layer that the represent the database in the application Service API Documentbased Database Tool-specific API Relational Database Wrap the communication with the data store and expose it as domain model

49 Data Source Patterns Row Data Gateway One instance per row returned by a query Table Data Gateway One instance per table Active Record Encapsulates DB access and adds business logic to data Data Mapper loads DB into Domain Model, and vice-versa

50 Row and Table Gateways Based on table structure Conversion of object type to database format Typically stateless Push back and forth data

51 Active Record Row Data Gateway + Business Logic Product productid productname static get(int id) insert update delete Data Store calculaterecognitions() Methods for: - Create instances from SLQ results - Insert new instances in the data store - Update data store based on instances data - Find relevant instances

52 Data Mapper Product productid productname calculaterecognitions() ProductMapper get(int id) insert update delete Data Store Decouple objects structure from database structure There may be more than one mapper per domain object

53 Navigate (Relational) Data Traverse object graph Join over foreign keys

54 Lazy Loading

55 Lazy Loading Interrupt the load at some point and resume it later only if needed

56 Lazy Loading Patterns Lazy Initialization Checks if field is null at every access Value Holder Wraps lazy-loaded objects Virtual Proxy Mocks field access and loads values on the demand Ghost Real object but partially loaded, missing data loaded on first access

57 3-Tier Architecture Presentation Web Browser Business logic Data source Front End App Server Back End

58 Front End Front End Generate the HTML based on request and data from the backend Can handle client side interactions both inside the server and the client s browser Security, input validation, responsiveness, etc.

59 Web Frameworks

60 Plugin Explicit extension points Static/Dynamic composition Low security (3rd party code) Extensibility and customizability

61 Client Side

62 JavaScript a programming language executed in the browser nothing to do with java JS files/libraries referenced by the web page like any other resource Can be inlined Dynamically manipulates the page Document Object Model (DOM) to alter page s content, structure, and behavior

63 AJAX Asynchronous JavaScript and XML

64 JS not so (well designed) easy

65 JS Frameworks

66 Case Study

67 Main Scenarios A user requests an article during normal operation and gets the rendered article HTML page. An editor saves an edited article during normal operation and the article is saved.

68

69

70 UI Page Submit Logic Static Resources ArticleView Skinning Localization ArticleEdit Parser Writes Reads Backend

71 Qualities Basic implementation - Limited scalability - Single point of failure - Limited Security

72 Performance Tactics Control Resource Demand - Increase the resource efficiency (caching) - Reduce overhead (pre-generate HTML from PHP) Manage Resources - Schedule resources (load balancer)

73 Load Balancing deploy many replicated instances of the server on multiple machines

74

75

76 Caching + Load Balancing FrontEnd (Apache)

77 Caching + Load Balancing Squid (Caching) Apache

78

79 Caching + Load Balancing Squid (Caching) Apache

80 Caching + Load Balancing LoadBalancer (Squid) Squid LoadBalancer Apache

81 Caching + Load Balancing LoadBalancer (Squid) Squid LoadBalancer Apache Squid Apache LoadBalancer Squid LoadBalancer Apache Squid Apache

82 UI Page Submit Logic Static Resources ArticleView Skinning Localization ArticleEdit Parser Writes Reads Backend

83 UI Page Cache Cache Submit Logic Loader ArticleView Skinning Localization Static Resources Cache Cache ArticleEdit Parser Writes Reads Backend

84 Performance Tactics Control Resource Demand - Prioritize events (deferred article updates) Manage Resources - Introduce concurrency (distributed database) - Schedule resources (load balancer) - Multiple copies of data and computations

85 Master/Slave split a large job into smaller independent partitions which can be processed in parallel

86 Distribution + Replication Database More reads than writes Near-live updates (no strict consistency requirements)

87 Distribution + Replication Load Balancer Writes Reads DB Master DB Slave More reads than writes Near-live updates (no strict consistency requirements)

88 Distribution + Replication Data Sharding Clear data separation (Article Name: A-B, C-D, etc..)

89 Distribution + Replication Load Balancer Writes Reads DB Master DB Slave

90 Distribution + Replication Load Balancer (Master) Partition Logic (Sharding, Relication Writes Reads DB Master (Shard) DB Slave

91 Visualization

92 UI Page Cache Cache Submit Logic Loader ArticleView Skinning Localization Static Resources Cache Cache ArticleEdit Parser Writes Reads Backend

93 UI Page Cached Submit Logic Loader Static Resources HTML File Cache ArticleView Skinning Localization Cached ArticleEdit Parser Cache Job Queue Job Runner Writes Parser Reads Writes Backend Precompile/Recompile Regenerate/Invalidate

94 Security/Availability Tactics Prevent Attacks Challenge Tokens (CSRF) Validation (User) and Sanitization (SQL Injection, XSS) Resist Attacks Maintain multiple copies of computations Maintain multiple copies of data Recover from Attacks DB Versioning (Recovery from data loss)

95 UI Page Cache Cache Submit Logic Loader ArticleView Skinning Localization Static Resources Cache Cache ArticleEdit Parser Writes Reads Backend

96 UI Page Cache Cache Submit Logic Loader ArticleView Skinning Localization Sanitizer Pipeline Static Resources Cache Cache ArticleEdit Parser Reads Writes User Access Backend

97 UI Page Submit Logic Loader Cache ArticleView Cache Skinning Localization Sanitizer Static Resources Cache Cache ArticleEdit Parser Writes Reads Backend

98 Additional Qualities

99 Extensibility UI Page Submit Logic Loader Cache ArticleView Cache Skinning Localization Sanitizer Static Resources Cache Cache ArticleEdit Parser Writes Reads Backend

100 Extensibility UI Page Cache Cache Submit Logic Loader ArticleView Skinning Localization Sanitizer Static Resources Cache Notify Cache Notify ArticleEdit Notify Parser Writes Notify Reads Notify Backend Hook Engine Register Callback External Module

101 Configurability/Customizability UI Page Cache Cache Submit Logic Loader ArticleView Skinning Localization Sanitizer Static Resources Cache Cache ArticleEdit Parser Writes Reads

102 Configurability/Customizability UI Page Cache Cache Submit Logic Global Variables and Configurations Sanitizer Loader Static Resources ArticleView Cache Skinning Localization Cache ArticleEdit Parser Writes Reads

103 Process View

104 Read Article A user requests an article during normal operation and gets the rendered article HTML page.

105 Read Article Article Exists GET Article N Y Get Article from DB HTML Cache Y Missing Page N Parse Content LoadBalancer Select DB Render Content Y Parser Cache

106 Write/Edit Article An editor saves an edited article during normal operation and the article is saved.

107 Write/Edit Article Error Page Y Write Conflict Submit Logic Update Job User Authorized Y Create Edit Form Article Edit Render Content LoadBalancer Select DB

108 Summary Work incrementally Use different architectural views Start the design from the domain model and go up in the layers Use frameworks whenever possible Each design decision has a rationale (hoisting)

Patterns of Software Architecture

Patterns of Software Architecture Patterns of Software Architecture Software Engineering Alessio Gambi - Saarland University Based on the work of Cesare Pautasso, Christoph Dorn, and their students Software Architecture A software system

More information

Developing Applications with Java EE 6 on WebLogic Server 12c

Developing Applications with Java EE 6 on WebLogic Server 12c Developing Applications with Java EE 6 on WebLogic Server 12c Duration: 5 Days What you will learn The Developing Applications with Java EE 6 on WebLogic Server 12c course teaches you the skills you need

More information

MASTERS COURSE IN FULL STACK WEB APPLICATION DEVELOPMENT W W W. W E B S T A C K A C A D E M Y. C O M

MASTERS COURSE IN FULL STACK WEB APPLICATION DEVELOPMENT W W W. W E B S T A C K A C A D E M Y. C O M MASTERS COURSE IN FULL STACK WEB APPLICATION DEVELOPMENT W W W. W E B S T A C K A C A D E M Y. C O M COURSE OBJECTIVES Enable participants to develop a complete web application from the scratch that includes

More information

STARCOUNTER. Technical Overview

STARCOUNTER. Technical Overview STARCOUNTER Technical Overview Summary 3 Introduction 4 Scope 5 Audience 5 Prerequisite Knowledge 5 Virtual Machine Database Management System 6 Weaver 7 Shared Memory 8 Atomicity 8 Consistency 9 Isolation

More information

Chapter 10 Web-based Information Systems

Chapter 10 Web-based Information Systems Prof. Dr.-Ing. Stefan Deßloch AG Heterogene Informationssysteme Geb. 36, Raum 329 Tel. 0631/205 3275 dessloch@informatik.uni-kl.de Chapter 10 Web-based Information Systems Role of the WWW for IS Initial

More information

DATABASE SYSTEMS. Database programming in a web environment. Database System Course, 2016

DATABASE SYSTEMS. Database programming in a web environment. Database System Course, 2016 DATABASE SYSTEMS Database programming in a web environment Database System Course, 2016 AGENDA FOR TODAY Advanced Mysql More than just SELECT Creating tables MySQL optimizations: Storage engines, indexing.

More information

Distributed Applications

Distributed Applications Distributed Applications Software Engineering 2017 Alessio Gambi - Saarland University Based on the work of Cesare Pautasso, Christoph Dorn, and other sources ReCap Software Architecture A software system

More information

Standard 1 The student will author web pages using the HyperText Markup Language (HTML)

Standard 1 The student will author web pages using the HyperText Markup Language (HTML) I. Course Title Web Application Development II. Course Description Students develop software solutions by building web apps. Technologies may include a back-end SQL database, web programming in PHP and/or

More information

Architectural Styles II

Architectural Styles II Architectural Styles II Software Architecture VO/KU (707.023/707.024) Denis Helic, Roman Kern KMI, TU Graz Nov 21, 2012 Denis Helic, Roman Kern (KMI, TU Graz) Architectural Styles II Nov 21, 2012 1 / 66

More information

CNIT 129S: Securing Web Applications. Ch 3: Web Application Technologies

CNIT 129S: Securing Web Applications. Ch 3: Web Application Technologies CNIT 129S: Securing Web Applications Ch 3: Web Application Technologies HTTP Hypertext Transfer Protocol (HTTP) Connectionless protocol Client sends an HTTP request to a Web server Gets an HTTP response

More information

PHP WITH ANGULAR CURRICULUM. What you will Be Able to Achieve During This Course

PHP WITH ANGULAR CURRICULUM. What you will Be Able to Achieve During This Course PHP WITH ANGULAR CURRICULUM What you will Be Able to Achieve During This Course This course will enable you to build real-world, dynamic web sites. If you've built websites using plain HTML, you realize

More information

UI Course HTML: (Html, CSS, JavaScript, JQuery, Bootstrap, AngularJS) Introduction. The World Wide Web (WWW) and history of HTML

UI Course HTML: (Html, CSS, JavaScript, JQuery, Bootstrap, AngularJS) Introduction. The World Wide Web (WWW) and history of HTML UI Course (Html, CSS, JavaScript, JQuery, Bootstrap, AngularJS) HTML: Introduction The World Wide Web (WWW) and history of HTML Hypertext and Hypertext Markup Language Why HTML Prerequisites Objective

More information

DATABASE SYSTEMS. Database programming in a web environment. Database System Course,

DATABASE SYSTEMS. Database programming in a web environment. Database System Course, DATABASE SYSTEMS Database programming in a web environment Database System Course, 2016-2017 AGENDA FOR TODAY The final project Advanced Mysql Database programming Recap: DB servers in the web Web programming

More information

DevShala Technologies A-51, Sector 64 Noida, Uttar Pradesh PIN Contact us

DevShala Technologies A-51, Sector 64 Noida, Uttar Pradesh PIN Contact us INTRODUCING PHP The origin of PHP PHP for Web Development & Web Applications PHP History Features of PHP How PHP works with the Web Server What is SERVER & how it works What is ZEND Engine Work of ZEND

More information

WEB SECURITY WORKSHOP TEXSAW Presented by Solomon Boyd and Jiayang Wang

WEB SECURITY WORKSHOP TEXSAW Presented by Solomon Boyd and Jiayang Wang WEB SECURITY WORKSHOP TEXSAW 2014 Presented by Solomon Boyd and Jiayang Wang Introduction and Background Targets Web Applications Web Pages Databases Goals Steal data Gain access to system Bypass authentication

More information

Modern and Responsive Mobile-enabled Web Applications

Modern and Responsive Mobile-enabled Web Applications Available online at www.sciencedirect.com ScienceDirect Procedia Computer Science 110 (2017) 410 415 The 12th International Conference on Future Networks and Communications (FNC-2017) Modern and Responsive

More information

Full Stack Web Developer

Full Stack Web Developer Full Stack Web Developer S.NO Technologies 1 HTML5 &CSS3 2 JavaScript, Object Oriented JavaScript& jquery 3 PHP&MYSQL Objective: Understand the importance of the web as a medium of communication. Understand

More information

All India Council For Research & Training

All India Council For Research & Training WEB DEVELOPMENT & DESIGNING Are you looking for a master program in web that covers everything related to web? Then yes! You have landed up on the right page. Web Master Course is an advanced web designing,

More information

1 Copyright 2011, Oracle and/or its affiliates. All rights reserved.

1 Copyright 2011, Oracle and/or its affiliates. All rights reserved. 1 Copyright 2011, Oracle and/or its affiliates. All rights reserved. ORACLE PRODUCT LOGO Oracle ADF Programming Best Practices Frank Nimphius Oracle Application Development Tools Product Management 2 Copyright

More information

1Z Oracle. Java Enterprise Edition 5 Enterprise Architect Certified Master

1Z Oracle. Java Enterprise Edition 5 Enterprise Architect Certified Master Oracle 1Z0-864 Java Enterprise Edition 5 Enterprise Architect Certified Master Download Full Version : http://killexams.com/pass4sure/exam-detail/1z0-864 Answer: A, C QUESTION: 226 Your company is bidding

More information

DATABASE SYSTEMS. Introduction to web programming. Database Systems Course, 2016

DATABASE SYSTEMS. Introduction to web programming. Database Systems Course, 2016 DATABASE SYSTEMS Introduction to web programming Database Systems Course, 2016 AGENDA FOR TODAY Client side programming HTML CSS Javascript Server side programming: PHP Installing a local web-server Basic

More information

04 Webservices. Web APIs REST Coulouris. Roy Fielding, Aphrodite, chp.9. Chp 5/6

04 Webservices. Web APIs REST Coulouris. Roy Fielding, Aphrodite, chp.9. Chp 5/6 04 Webservices Web APIs REST Coulouris chp.9 Roy Fielding, 2000 Chp 5/6 Aphrodite, 2002 http://www.xml.com/pub/a/2004/12/01/restful-web.html http://www.restapitutorial.com Webservice "A Web service is

More information

CLIENT SERVER ARCHITECTURE:

CLIENT SERVER ARCHITECTURE: CLIENT SERVER ARCHITECTURE: Client-Server architecture is an architectural deployment style that describe the separation of functionality into layers with each segment being a tier that can be located

More information

CORE PHP CURRICULUM. Introductory Session Web Architecture Overview of PHP Platform Origins of PHP in the open source community

CORE PHP CURRICULUM. Introductory Session Web Architecture Overview of PHP Platform Origins of PHP in the open source community CORE PHP CURRICULUM What you will Be Able to Achieve During This Course This course will enable you to build real-world, dynamic web sites. If you've built websites using plain HTML, you realize the limitation

More information

CNIT 129S: Securing Web Applications. Ch 10: Attacking Back-End Components

CNIT 129S: Securing Web Applications. Ch 10: Attacking Back-End Components CNIT 129S: Securing Web Applications Ch 10: Attacking Back-End Components Injecting OS Commands Web server platforms often have APIs To access the filesystem, interface with other processes, and for network

More information

ReST 2000 Roy Fielding W3C

ReST 2000 Roy Fielding W3C Outline What is ReST? Constraints in ReST REST Architecture Components Features of ReST applications Example of requests in REST & SOAP Complex REST request REST Server response Real REST examples REST

More information

PHP & My SQL Duration-4-6 Months

PHP & My SQL Duration-4-6 Months PHP & My SQL Duration-4-6 Months Overview of the PHP & My SQL Introduction of different Web Technology Working with the web Client / Server Programs Server Communication Sessions Cookies Typed Languages

More information

Fundamentals of Web Development. Web Development. Fundamentals of. Global edition. Global edition. Randy Connolly Ricardo Hoar

Fundamentals of Web Development. Web Development. Fundamentals of. Global edition. Global edition. Randy Connolly Ricardo Hoar Connolly Hoar This is a special edition of an established title widely used by colleges and universities throughout the world. Pearson published this exclusive edition for the benefit of students outside

More information

Brocade Virtual Traffic Manager and Parallels Remote Application Server

Brocade Virtual Traffic Manager and Parallels Remote Application Server White Paper Parallels Brocade Virtual Traffic Manager and Parallels Deployment Guide 01 Contents Preface...4 About This Guide...4 Audience...4 Contacting Brocade...4 Internet...4 Technical Support...4

More information

Web basics: HTTP cookies

Web basics: HTTP cookies Web basics: HTTP cookies Myrto Arapinis School of Informatics University of Edinburgh February 11, 2016 1 / 27 How is state managed in HTTP sessions HTTP is stateless: when a client sends a request, the

More information

welcome to BOILERCAMP HOW TO WEB DEV

welcome to BOILERCAMP HOW TO WEB DEV welcome to BOILERCAMP HOW TO WEB DEV Introduction / Project Overview The Plan Personal Website/Blog Schedule Introduction / Project Overview HTML / CSS Client-side JavaScript Lunch Node.js / Express.js

More information

SUN Sun Certified Enterprise Architect for J2EE 5. Download Full Version :

SUN Sun Certified Enterprise Architect for J2EE 5. Download Full Version : SUN 310-052 Sun Certified Enterprise Architect for J2EE 5 Download Full Version : http://killexams.com/pass4sure/exam-detail/310-052 combination of ANSI SQL-99 syntax coupled with some company-specific

More information

Tooling for Ajax-Based Development. Craig R. McClanahan Senior Staff Engineer Sun Microsystems, Inc.

Tooling for Ajax-Based Development. Craig R. McClanahan Senior Staff Engineer Sun Microsystems, Inc. Tooling for Ajax-Based Development Craig R. McClanahan Senior Staff Engineer Sun Microsystems, Inc. 1 Agenda In The Beginning Frameworks Tooling Architectural Approaches Resources 2 In The Beginning 3

More information

How is state managed in HTTP sessions. Web basics: HTTP cookies. Hidden fields (2) The principle. Disadvantage of this approach

How is state managed in HTTP sessions. Web basics: HTTP cookies. Hidden fields (2) The principle. Disadvantage of this approach Web basics: HTTP cookies Myrto Arapinis School of Informatics University of Edinburgh March 30, 2015 How is state managed in HTTP sessions HTTP is stateless: when a client sends a request, the server sends

More information

Review. Fundamentals of Website Development. Web Extensions Server side & Where is your JOB? The Department of Computer Science 11/30/2015

Review. Fundamentals of Website Development. Web Extensions Server side & Where is your JOB? The Department of Computer Science 11/30/2015 Fundamentals of Website Development CSC 2320, Fall 2015 The Department of Computer Science Review Web Extensions Server side & Where is your JOB? 1 In this chapter Dynamic pages programming Database Others

More information

Pro ASP.NET MVC 2 Framework

Pro ASP.NET MVC 2 Framework Pro ASP.NET MVC 2 Framework Second Edition Steven Sanderson Apress TIB/UB Hannover 89 133 297 713 Contents at a Glance Contents About the Author About the Technical Reviewers Acknowledgments Introduction

More information

To Kill a Monolith: Slaying the Demons of a Monolith with Node.js Microservices on CloudFoundry. Tony Erwin,

To Kill a Monolith: Slaying the Demons of a Monolith with Node.js Microservices on CloudFoundry. Tony Erwin, To Kill a Monolith: Slaying the Demons of a Monolith with Node.js Microservices on CloudFoundry Tony Erwin, aerwin@us.ibm.com Agenda Origins of the Bluemix UI Demons of the Monolith Slaying Demons with

More information

SOFTWARE DEVELOPMENT SERVICES WEB APPLICATION PORTAL (WAP) TRAINING. Intuit 2007

SOFTWARE DEVELOPMENT SERVICES WEB APPLICATION PORTAL (WAP) TRAINING. Intuit 2007 SOFTWARE DEVELOPMENT SERVICES WEB APPLICATION PORTAL (WAP) TRAINING Intuit 2007 I ve included this training in my portfolio because it was very technical and I worked with a SME to develop it. It demonstrates

More information

Developing ASP.NET MVC Web Applications (486)

Developing ASP.NET MVC Web Applications (486) Developing ASP.NET MVC Web Applications (486) Design the application architecture Plan the application layers Plan data access; plan for separation of concerns, appropriate use of models, views, controllers,

More information

Full Stack boot camp

Full Stack boot camp Name Full Stack boot camp Duration (Hours) JavaScript Programming 56 Git 8 Front End Development Basics 24 Typescript 8 React Basics 40 E2E Testing 8 Build & Setup 8 Advanced JavaScript 48 NodeJS 24 Building

More information

Solutions Business Manager Web Application Security Assessment

Solutions Business Manager Web Application Security Assessment White Paper Solutions Business Manager Solutions Business Manager 11.3.1 Web Application Security Assessment Table of Contents Micro Focus Takes Security Seriously... 1 Solutions Business Manager Security

More information

Helpline No WhatsApp No.:

Helpline No WhatsApp No.: TRAINING BASKET QUALIFY FOR TOMORROW Helpline No. 9015887887 WhatsApp No.: 9899080002 Regd. Off. Plot No. A-40, Unit 301/302, Tower A, 3rd Floor I-Thum Tower Near Corenthum Tower, Sector-62, Noida - 201309

More information

Oracle - Developing Applications for the Java EE 7 Platform Ed 1 (Training On Demand)

Oracle - Developing Applications for the Java EE 7 Platform Ed 1 (Training On Demand) Oracle - Developing Applications for the Java EE 7 Platform Ed 1 (Training On Demand) Code: URL: D101074GC10 View Online The Developing Applications for the Java EE 7 Platform training teaches you how

More information

Index. Note: Boldface numbers indicate code and illustrations; an italic t indicates a table.

Index. Note: Boldface numbers indicate code and illustrations; an italic t indicates a table. Index Note: Boldface numbers indicate code and illustrations; an italic t indicates a table. A absolute positioning, in HTML, 184 187, 184 187 abstract classes, 6, 6 Accept header, 260 265, 261 265 access

More information

Web Software Model CS 4640 Programming Languages for Web Applications

Web Software Model CS 4640 Programming Languages for Web Applications Web Software Model CS 4640 Programming Languages for Web Applications [Robert W. Sebesta, Programming the World Wide Web Upsorn Praphamontripong, Web Mutation Testing ] 1 Web Applications User interactive

More information

ANGULAR 2.X,4.X + TYPESRCIPT by Sindhu

ANGULAR 2.X,4.X + TYPESRCIPT by Sindhu ANGULAR 2.X,4.X + TYPESRCIPT by Sindhu GETTING STARTED WITH TYPESCRIPT Installing TypeScript Compiling the code Building a simple demo. UNDERSTANDING CLASSES Building a class Adding properties Demo of

More information

AIM. 10 September

AIM. 10 September AIM These two courses are aimed at introducing you to the World of Web Programming. These courses does NOT make you Master all the skills of a Web Programmer. You must learn and work MORE in this area

More information

PHP / MYSQL DURATION: 2 MONTHS

PHP / MYSQL DURATION: 2 MONTHS PHP / MYSQL HTML Introduction of Web Technology History of HTML HTML Editors HTML Doctypes HTML Heads and Basics HTML Comments HTML Formatting HTML Fonts, styles HTML links and images HTML Blocks and Layout

More information

Web basics: HTTP cookies

Web basics: HTTP cookies Web basics: HTTP cookies Myrto Arapinis School of Informatics University of Edinburgh November 20, 2017 1 / 32 How is state managed in HTTP sessions HTTP is stateless: when a client sends a request, the

More information

Hi! NET Developer Group Braunschweig!

Hi! NET Developer Group Braunschweig! Hi! NET Developer Group Braunschweig! Über Tobias Dipl. Informatiker (FH) Passionated Software Developer Clean Code Developer.NET Junkie.NET User Group Lead Microsoft PFE Software Development Twitter @Blubern

More information

A Closer Look at XPages in IBM Lotus Domino Designer 8.5 Ray Chan Advisory I/T Specialist Lotus, IBM Software Group

A Closer Look at XPages in IBM Lotus Domino Designer 8.5 Ray Chan Advisory I/T Specialist Lotus, IBM Software Group A Closer Look at XPages in IBM Lotus Domino Designer 8.5 Ray Chan Advisory I/T Specialist Lotus, IBM Software Group 2008 IBM Corporation Agenda XPage overview From palette to properties: Controls, Ajax

More information

Advanced Joomla! Dan Rahmel. Apress*

Advanced Joomla! Dan Rahmel. Apress* Advanced Joomla! Dan Rahmel Apress* Contents About the Author About the Technical Reviewer Acknowledgments Introduction xvii...xix xxi xxiii Chapter 1: Streamlining the Authoring Process 1 Setting the

More information

Roadmap. Mike Chtchelkonogov Founder & Chief Technology Officer Acumatica

Roadmap. Mike Chtchelkonogov Founder & Chief Technology Officer Acumatica Roadmap Mike Chtchelkonogov Founder & Chief Technology Officer Acumatica mik@acumatica.com Andrew Boulanov Head of Platform Development Acumatica aboulanov@acumatica.com Acumatica xrp Priorities Platform

More information

Executive Summary. Performance Report for: https://edwardtbabinski.us/blogger/social/index. The web should be fast. How does this affect me?

Executive Summary. Performance Report for: https://edwardtbabinski.us/blogger/social/index. The web should be fast. How does this affect me? The web should be fast. Executive Summary Performance Report for: https://edwardtbabinski.us/blogger/social/index Report generated: Test Server Region: Using: Analysis options: Tue,, 2017, 4:21 AM -0400

More information

The course also includes an overview of some of the most popular frameworks that you will most likely encounter in your real work environments.

The course also includes an overview of some of the most popular frameworks that you will most likely encounter in your real work environments. Web Development WEB101: Web Development Fundamentals using HTML, CSS and JavaScript $2,495.00 5 Days Replay Class Recordings included with this course Upcoming Dates Course Description This 5-day instructor-led

More information

Design Patterns for Large- Scale Data Management. Robert Hodges OSCON 2013

Design Patterns for Large- Scale Data Management. Robert Hodges OSCON 2013 Design Patterns for Large- Scale Data Management Robert Hodges OSCON 2013 The Start-Up Dilemma 1. You are releasing Online Storefront V 1.0 2. It could be a complete bust 3. But it could be *really* big

More information

Course Curriculum Accord info Matrix Pvt.Ltd Page 1 of 7

Course Curriculum Accord info Matrix Pvt.Ltd Page 1 of 7 Page 1 of 7 Introduction to Open Source Software - Open Source Vs Closed Source Applications - Introduction to the LAMP (Linux+Apache+Mysql+PHP) software bundle. DESIGNING WEB APPLICATIONS HTML: Introduction

More information

Full Stack Web Developer

Full Stack Web Developer Full Stack Web Developer Course Contents: Introduction to Web Development HTML5 and CSS3 Introduction to HTML5 Why HTML5 Benefits Of HTML5 over HTML HTML 5 for Making Dynamic Page HTML5 for making Graphics

More information

Development of Web Applications

Development of Web Applications Development of Web Applications Principles and Practice Vincent Simonet, 2013-2014 Université Pierre et Marie Curie, Master Informatique, Spécialité STL 6 Practical Aspects Vincent Simonet, 2013-2014 Université

More information

An Introduction to JavaScript & Bootstrap Basic concept used in responsive website development Form Validation Creating templates

An Introduction to JavaScript & Bootstrap Basic concept used in responsive website development Form Validation Creating templates PHP Course Contents An Introduction to HTML & CSS Basic Html concept used in website development Creating templates An Introduction to JavaScript & Bootstrap Basic concept used in responsive website development

More information

CS WEB TECHNOLOGY

CS WEB TECHNOLOGY CS1019 - WEB TECHNOLOGY UNIT 1 INTRODUCTION 9 Internet Principles Basic Web Concepts Client/Server model retrieving data from Internet HTM and Scripting Languages Standard Generalized Mark up languages

More information

Improve and Expand JavaServer Faces Technology with JBoss Seam

Improve and Expand JavaServer Faces Technology with JBoss Seam Improve and Expand JavaServer Faces Technology with JBoss Seam Michael Yuan Kito D. Mann Product Manager, Red Hat Author, JSF in Action http://www.michaelyuan.com/seam/ Principal Consultant Virtua, Inc.

More information

Index LICENSED PRODUCT NOT FOR RESALE

Index LICENSED PRODUCT NOT FOR RESALE Index LICENSED PRODUCT NOT FOR RESALE A Absolute positioning, 100 102 with multi-columns, 101 Accelerometer, 263 Access data, 225 227 Adding elements, 209 211 to display, 210 Animated boxes creation using

More information

WWW Architecture I. Software Architecture VO/KU ( / ) Roman Kern. KTI, TU Graz

WWW Architecture I. Software Architecture VO/KU ( / ) Roman Kern. KTI, TU Graz WWW Architecture I Software Architecture VO/KU (707.023/707.024) Roman Kern KTI, TU Graz 2013-12-04 Roman Kern (KTI, TU Graz) WWW Architecture I 2013-12-04 1 / 81 Web Development Tutorial Java Web Development

More information

An Overview of. Eric Bollens ebollens AT ucla.edu Mobile Web Framework Architect UCLA Office of Information Technology

An Overview of. Eric Bollens ebollens AT ucla.edu Mobile Web Framework Architect UCLA Office of Information Technology An Overview of Eric Bollens ebollens AT ucla.edu Mobile Web Framework Architect UCLA Office of Information Technology August 23, 2011 1. Design Principles 2. Architectural Patterns 3. Building for Degradation

More information

Managing State. Chapter 13

Managing State. Chapter 13 Managing State Chapter 13 Textbook to be published by Pearson Ed 2015 in early Pearson 2014 Fundamentals of Web http://www.funwebdev.com Development Section 1 of 8 THE PROBLEM OF STATE IN WEB APPLICATIONS

More information

<Insert Picture Here>

<Insert Picture Here> Oracle Forms Modernization with Oracle Application Express Marc Sewtz Software Development Manager Oracle Application Express Oracle USA Inc. 540 Madison Avenue,

More information

Excerpts of Web Application Security focusing on Data Validation. adapted for F.I.S.T. 2004, Frankfurt

Excerpts of Web Application Security focusing on Data Validation. adapted for F.I.S.T. 2004, Frankfurt Excerpts of Web Application Security focusing on Data Validation adapted for F.I.S.T. 2004, Frankfurt by fs Purpose of this course: 1. Relate to WA s and get a basic understanding of them 2. Understand

More information

Varargs Training & Software Development Centre Private Limited, Module: HTML5, CSS3 & JavaScript

Varargs Training & Software Development Centre Private Limited, Module: HTML5, CSS3 & JavaScript PHP Curriculum Module: HTML5, CSS3 & JavaScript Introduction to the Web o Explain the evolution of HTML o Explain the page structure used by HTML o List the drawbacks in HTML 4 and XHTML o List the new

More information

MySQL Cluster Web Scalability, % Availability. Andrew

MySQL Cluster Web Scalability, % Availability. Andrew MySQL Cluster Web Scalability, 99.999% Availability Andrew Morgan @andrewmorgan www.clusterdb.com Safe Harbour Statement The following is intended to outline our general product direction. It is intended

More information

<Insert Picture Here> MySQL Cluster What are we working on

<Insert Picture Here> MySQL Cluster What are we working on MySQL Cluster What are we working on Mario Beck Principal Consultant The following is intended to outline our general product direction. It is intended for information purposes only,

More information

Notes. Submit homework on Blackboard The first homework deadline is the end of Sunday, Feb 11 th. Final slides have 'Spring 2018' in chapter title

Notes. Submit homework on Blackboard The first homework deadline is the end of Sunday, Feb 11 th. Final slides have 'Spring 2018' in chapter title Notes Ask course content questions on Slack (is651-spring-2018.slack.com) Contact me by email to add you to Slack Make sure you checked Additional Links at homework page before you ask In-class discussion

More information

Web application Architecture

Web application Architecture 1 / 37 AJAX Prof. Cesare Pautasso http://www.pautasso.info cesare.pautasso@usi.ch @pautasso Web application Architecture 5 / 37 Client Server Backend Response Database File System 2013 Cesare Pautasso

More information

Building a Scalable Architecture for Web Apps - Part I (Lessons Directi)

Building a Scalable Architecture for Web Apps - Part I (Lessons Directi) Intelligent People. Uncommon Ideas. Building a Scalable Architecture for Web Apps - Part I (Lessons Learned @ Directi) By Bhavin Turakhia CEO, Directi (http://www.directi.com http://wiki.directi.com http://careers.directi.com)

More information

Overview

Overview HTML4 & HTML5 Overview Basic Tags Elements Attributes Formatting Phrase Tags Meta Tags Comments Examples / Demos : Text Examples Headings Examples Links Examples Images Examples Lists Examples Tables Examples

More information

Software Paradigms (Lesson 10) Selected Topics in Software Architecture

Software Paradigms (Lesson 10) Selected Topics in Software Architecture Software Paradigms (Lesson 10) Selected Topics in Software Architecture Table of Contents 1 World-Wide-Web... 2 1.1 Basic Architectural Solution... 2 1.2 Designing WWW Applications... 7 2 CORBA... 11 2.1

More information

Information Security CS 526 Topic 8

Information Security CS 526 Topic 8 Information Security CS 526 Topic 8 Web Security Part 1 1 Readings for This Lecture Wikipedia HTTP Cookie Same Origin Policy Cross Site Scripting Cross Site Request Forgery 2 Background Many sensitive

More information

Computer Networks. Wenzhong Li. Nanjing University

Computer Networks. Wenzhong Li. Nanjing University Computer Networks Wenzhong Li Nanjing University 1 Chapter 8. Internet Applications Internet Applications Overview Domain Name Service (DNS) Electronic Mail File Transfer Protocol (FTP) WWW and HTTP Content

More information

Lecture Overview. IN5290 Ethical Hacking. Lecture 4: Web hacking 1, Client side bypass, Tampering data, Brute-forcing

Lecture Overview. IN5290 Ethical Hacking. Lecture 4: Web hacking 1, Client side bypass, Tampering data, Brute-forcing Lecture Overview IN5290 Ethical Hacking Lecture 4: Web hacking 1, Client side bypass, Tampering data, Brute-forcing Summary - how web sites work HTTP protocol Client side server side actions Accessing

More information

Interactive XML Visualization - using XSLT 2.0 on the Browser. Phil Fearon - Saxonica

Interactive XML Visualization - using XSLT 2.0 on the Browser. Phil Fearon - Saxonica Interactive XML Visualization - using XSLT 2.0 on the Browser Phil Fearon - Saxonica Big XML Theme Big data Large scale searching Processing large volumes at high speed Crunching big XML files Open Linked

More information

More on Testing and Large Scale Web Apps

More on Testing and Large Scale Web Apps More on Testing and Large Scale Web Apps Testing Functionality Tests - Unit tests: E.g. Mocha - Integration tests - End-to-end - E.g. Selenium - HTML CSS validation - forms and form validation - cookies

More information

RESTful Services. Distributed Enabling Platform

RESTful Services. Distributed Enabling Platform RESTful Services 1 https://dev.twitter.com/docs/api 2 http://developer.linkedin.com/apis 3 http://docs.aws.amazon.com/amazons3/latest/api/apirest.html 4 Web Architectural Components 1. Identification:

More information

Sharedien. Everything you need to know. Simply find it. sharedien.com. sharedien.com

Sharedien. Everything you need to know. Simply find it. sharedien.com. sharedien.com Sharedien. Everything you need to know. Simply find it Administration. Authentication User authentication can be performed by means of Active Directory, LDAP or a custom single sign-on provider. The configuration

More information

Java EE 6: Develop Web Applications with JSF

Java EE 6: Develop Web Applications with JSF Oracle University Contact Us: +966 1 1 2739 894 Java EE 6: Develop Web Applications with JSF Duration: 4 Days What you will learn JavaServer Faces technology, the server-side component framework designed

More information

Java SE7 Fundamentals

Java SE7 Fundamentals Java SE7 Fundamentals Introducing the Java Technology Relating Java with other languages Showing how to download, install, and configure the Java environment on a Windows system. Describing the various

More information

Website Designing Training

Website Designing Training Website Designing Training Become a Professional Website Designer 100% Practical Training, Personalized Classroom Training, Assured Job Certified Training Programme in Website designing INDEX OF WEBSITE

More information

JavaScript CS 4640 Programming Languages for Web Applications

JavaScript CS 4640 Programming Languages for Web Applications JavaScript CS 4640 Programming Languages for Web Applications 1 How HTML, CSS, and JS Fit Together {css} javascript() Content layer The HTML gives the page structure and adds semantics Presentation

More information

Planning and Designing Your Site p. 109 Design Concepts p. 116 Summary p. 118 Defining Your Site p. 119 The Files Panel p. 119 Accessing Your Remote

Planning and Designing Your Site p. 109 Design Concepts p. 116 Summary p. 118 Defining Your Site p. 119 The Files Panel p. 119 Accessing Your Remote Acknowledgments p. xxv Introduction p. xxvii Getting Started with Dreamweaver MX 2004 Is It 2004 Already? p. 3 The Internet p. 4 TCP/IP p. 7 Hypertext Transfer Protocol p. 8 Hypertext Markup Language p.

More information

SCALABLE WEB PROGRAMMING. CS193S - Jan Jannink - 2/02/10

SCALABLE WEB PROGRAMMING. CS193S - Jan Jannink - 2/02/10 SCALABLE WEB PROGRAMMING CS193S - Jan Jannink - 2/02/10 Weekly Syllabus 1.Scalability: (Jan.) 2.Agile Practices 3.Ecology/Mashups 4.Browser/Client 5.Data/Server: (Feb.) 6.Security/Privacy 7.Analytics*

More information

Vision of J2EE. Why J2EE? Need for. J2EE Suite. J2EE Based Distributed Application Architecture Overview. Umair Javed 1

Vision of J2EE. Why J2EE? Need for. J2EE Suite. J2EE Based Distributed Application Architecture Overview. Umair Javed 1 Umair Javed 2004 J2EE Based Distributed Application Architecture Overview Lecture - 2 Distributed Software Systems Development Why J2EE? Vision of J2EE An open standard Umbrella for anything Java-related

More information

Setting Up a Development Server What Is a WAMP, MAMP, or LAMP? Installing a WAMP on Windows Testing the InstallationAlternative WAMPs Installing a

Setting Up a Development Server What Is a WAMP, MAMP, or LAMP? Installing a WAMP on Windows Testing the InstallationAlternative WAMPs Installing a Setting Up a Development Server What Is a WAMP, MAMP, or LAMP? Installing a WAMP on Windows Testing the InstallationAlternative WAMPs Installing a LAMP on Linux Working Remotely Introduction to web programming

More information

Real World Web Scalability. Ask Bjørn Hansen Develooper LLC

Real World Web Scalability. Ask Bjørn Hansen Develooper LLC Real World Web Scalability Ask Bjørn Hansen Develooper LLC Hello. 28 brilliant methods to make your website keep working past $goal requests/transactions/sales per second/hour/day Requiring minimal extra

More information

JavaScript CS 4640 Programming Languages for Web Applications

JavaScript CS 4640 Programming Languages for Web Applications JavaScript CS 4640 Programming Languages for Web Applications 1 How HTML, CSS, and JS Fit Together {css} javascript() Content layer The HTML gives the page structure and adds semantics Presentation

More information

1 Dulcian, Inc., 2001 All rights reserved. Oracle9i Data Warehouse Review. Agenda

1 Dulcian, Inc., 2001 All rights reserved. Oracle9i Data Warehouse Review. Agenda Agenda Oracle9i Warehouse Review Dulcian, Inc. Oracle9i Server OLAP Server Analytical SQL Mining ETL Infrastructure 9i Warehouse Builder Oracle 9i Server Overview E-Business Intelligence Platform 9i Server:

More information

Oracle Developer Day

Oracle Developer Day Oracle Developer Day Sponsored by: J2EE Track: Session #3 Developing JavaServer Faces Applications Name Title Agenda Introduction to JavaServer Faces What is JavaServer Faces Goals Architecture Request

More information

foreword to the first edition preface xxi acknowledgments xxiii about this book xxv about the cover illustration

foreword to the first edition preface xxi acknowledgments xxiii about this book xxv about the cover illustration contents foreword to the first edition preface xxi acknowledgments xxiii about this book xxv about the cover illustration xix xxxii PART 1 GETTING STARTED WITH ORM...1 1 2 Understanding object/relational

More information

Web System and Technologies (Objective + Subjective)

Web System and Technologies (Objective + Subjective) 1. What four components are needed to create a fully dynamic web page. A web server (such as Apache), a server-side scripting language (PHP), a database (MySQL), and a client-side scripting language (JavaScript)

More information

Database Applications

Database Applications Database Applications Database Programming Application Architecture Objects and Relational Databases John Edgar 2 Users do not usually interact directly with a database via the DBMS The DBMS provides

More information

Web development using PHP & MySQL with HTML5, CSS, JavaScript

Web development using PHP & MySQL with HTML5, CSS, JavaScript Web development using PHP & MySQL with HTML5, CSS, JavaScript Static Webpage Development Introduction to web Browser Website Webpage Content of webpage Static vs dynamic webpage Technologies to create

More information

XML: Extensible Markup Language

XML: Extensible Markup Language XML: Extensible Markup Language CSC 375, Fall 2015 XML is a classic political compromise: it balances the needs of man and machine by being equally unreadable to both. Matthew Might Slides slightly modified

More information