Overview of Web Application Development

Similar documents
Component based Development. Table of Contents. Notes. Notes. Notes. Web Application Development. Zsolt Tóth

Java EE Application Assembly & Deployment Packaging Applications, Java EE modules. Model View Controller (MVC)2 Architecture & Packaging EJB Module

Enterprise Software Architecture & Design

Developing Applications with Java EE 6 on WebLogic Server 12c

Introduction to Web Application Development Using JEE, Frameworks, Web Services and AJAX

API Documentation. Web Application Development. Zsolt Tóth. University of Miskolc. Zsolt Tóth (University of Miskolc) API Documentation / 28

Model-View-Control Pattern for User Interactive Systems

Basics of Web. First published on 3 July 2012 This is the 7 h Revised edition

Spring Web Services Tutorial With Example In

Basics of Web Technologies

Enterprise Web based Software Architecture & Design

Open Source Library Developer & IT Pro

JAVA COURSES. Empowering Innovation. DN InfoTech Pvt. Ltd. H-151, Sector 63, Noida, UP

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

Java J Course Outline

Development of web applications using Google Technology

Using Data Science to deliver Workforce & Labour Market Insights. Gary Gan Co-Founder, JobKred

Web Programming HTML CSS JavaScript Step by step Exercises Hans-Petter Halvorsen

Front End Programming

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

Java EE 7 is ready What to do next? Peter Doschkinow Senior Java Architect

Java Applets, etc. Instructor: Dmitri A. Gusev. Fall Lecture 25, December 5, CS 502: Computers and Communications Technology

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

Developing Ajax Web Apps with GWT. Session I

All India Council For Research & Training

Skyway Builder 6.3 Reference

Job Description: Junior Front End Developer

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

Networks, WWW, HTTP. Web Technologies I. Zsolt Tóth. University of Miskolc. Zsolt Tóth (University of Miskolc) Networks, WWW, HTTP / 35

Struts: Struts 1.x. Introduction. Enterprise Application

com Spring + Spring-MVC + Spring-Boot + Design Pattern + XML + JMS Hibernate + Struts + Web Services = 8000/-

About the Authors. Who Should Read This Book. How This Book Is Organized

Qiufeng Zhu Advanced User Interface Spring 2017

Migrating traditional Java EE applications to mobile

Distributed Multitiered Application

Webservices In Java Tutorial For Beginners Using Netbeans Pdf

Cleveland State University Department of Electrical and Computer Engineering. CIS 408: Internet Computing

welcome to BOILERCAMP HOW TO WEB DEV

Active Endpoints. ActiveVOS Platform Architecture Active Endpoints

Etanova Enterprise Solutions

OpenECOMP SDC Developer Guide

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

Web Application Architectures

Hackveda Appsec Labs Java Programming Course and Internship Program Description:

Type of Classes Nested Classes Inner Classes Local and Anonymous Inner Classes

Chapter 10 Web-based Information Systems

Arjen de Blok. Senior Technical Consultant bij ICT Groep ( sinds 1995 Programmeren sinds 1990 Technologiën. Links

Full Stack boot camp

Tutorial 4 Data Persistence in Java

Spring and OSGi. Martin Lippert akquinet agile GmbH Bernd Kolb Gerd Wütherich

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

P a g e 1. Danish Tecnological Institute. Developer Collection Online Course k Developer Collection

FILE - JAVA WEB SERVICE TUTORIAL

Spring & Hibernate. Knowledge of database. And basic Knowledge of web application development. Module 1: Spring Basics

CPET 581 E-Commerce & Business Technologies. Topics

Struts 2 Maven Archetypes

Syllabus INFO-GB Design and Development of Web and Mobile Applications (Especially for Start Ups)

Getting started with Geomajas. Geomajas Developers and Geosparc

AIM. 10 September

Sitesbay.com. A Perfect Place for All Tutorials Resources. Java Projects C C++ DS Interview Questions JavaScript

a Very Short Introduction to AngularJS

MAVEN MOCK TEST MAVEN MOCK TEST I

AngularJS Fundamentals

Lessons learned from real-world deployments of Java EE 7. Arun Gupta, Red

CSC 443: Web Programming

Implementing a Numerical Data Access Service

Reading Writing Speaking Reading Writing Speaking. English Intermediate Intermediate Elementary Intermediate Intermediate Elementary

MongoDB Web Architecture

Evaluation Guide for ASP.NET Web CMS and Experience Platforms

Upload to your web space (e.g., UCSC) Due this Thursday 4/8 in class Deliverable: Send me an with the URL Grading:

Advance Mobile& Web Application development using Angular and Native Script

About the Tutorial. Audience. Prerequisites. Copyright & Disclaimer. Laravel

INSTITUTE OF AERONAUTICAL ENGINEERING (Autonomous) Dundigal, Hyderabad

Spring Persistence. with Hibernate PAUL TEPPER FISHER BRIAN D. MURPHY

Architecting Java solutions for CICS

Programming the World Wide Web by Robert W. Sebesta

Advanced Java Programming

Agenda. INTRODUCTION TO WEB DEVELOPMENT AND HTML <Lecture 1> 1/20/2013. What is a Web Developer? Rommel Anthony Palomino Spring

Web Application Development Using Spring, Hibernate and JPA

Web Application Development Using Spring, Hibernate and JPA

Web Application Development Using Spring, Hibernate and JPA

The Next Generation of Eclipse: e4. Mike Milinkovich Executive Director Eclipse Foundation

20486-Developing ASP.NET MVC 4 Web Applications

/ / JAVA TRAINING

Developer Internship Opportunity at I-CC

Inf 202 Introduction to Data and Databases (Spring 2010)

Courses For Event Java Advanced Summer Training 2018

Performance evaluation of J2EE

CS WEB TECHNOLOGY

"Web Age Speaks!" Webinar Series

CS Final Exam Review Suggestions - Spring 2018

OpenOffice.org as a platform for developers

Java Advance Frameworks

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

Let's Play... Try to name the databases described on the following slides...

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

Resilient & Ready. May 21 23, 2018

OCNG OpenClinica Next Generation 1

An Introduction to Eclipse Che Lets build a custom cloud IDE. October 2015 Tyler Jewell, Eclipse Che Project

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

Transcription:

Overview of Web Application Development Web Technologies I. Zsolt Tóth University of Miskolc 2018 Zsolt Tóth (University of Miskolc) Web Apps 2018 1 / 34

Table of Contents Overview Architecture 1 Overview Architecture Component based Development Model View Controller 2 Back end Programming Languages Server Side Components 3 Front end Programming Languages Single Page Applications 4 Tutorials Zsolt Tóth (University of Miskolc) Web Apps 2018 2 / 34

Overview Architecture Client Server Model Simple Model Clients request services Server waits for and servers requests Widely used FTP, SSH WWW, SMTP Centralized Web Applications Information Systems Search Engines Social Media Web Shops e Government e Banking Monitoring Systems Zsolt Tóth (University of Miskolc) Web Apps 2018 3 / 34

Overview Architecture N tier Architecture Detailed than Client Server Model Tiers are not Layers Tiers have specific functions, purpose Typical tiers Presentation Client side Web sites Mobile / Desktop applications Business Server side Business logic Database Server side Not available directly. Zsolt Tóth (University of Miskolc) Web Apps 2018 4 / 34

Overview Architecture Pesentation Tier Front end Send requests, use services Visualize response Run on client side User Interface text, tables, lists images, charts audio, video Controls button, text field, checkbox radio button drop down list Web Applications Thin client Only visualization Client side checking! Desktop Applications Thick client Installing, updating? Mobile Thin or thick client Browser vs native application Different display Zsolt Tóth (University of Miskolc) Web Apps 2018 5 / 34

Overview Architecture Business Tier Back end Server side Provides services Handle internal exceptions Seems to be a huge monolithic application but it may be made of sub systems sub systems are built from components Components model Domain classes, POJOs persist Storage, JDBC, mybatis, Hybernate, etc. service High level functions, Use Case controller Handle HTTP requests, sanitize input data Zsolt Tóth (University of Miskolc) Web Apps 2018 6 / 34

Overview Architecture Database Tier Storage of business objects Changeability of the storage implementation Separated from business tier Well-known trusted technologies are used Data is accessed via 3rd party APIs DMBS Oracle, DB2, MS SQL Server MySQL, PostgreSQL Database expert is required! NoSQL MongoDB Neo4j File System Custom directory hierarchy Security issues Zsolt Tóth (University of Miskolc) Web Apps 2018 7 / 34

Overview Component based Development Terms sub system A part of the entire system that provide a well defined functionality. module A development unit that has a well defined purpose. Modules are identified by their name. component A module used by another module. artifact A specific version of a module. A module with a version number. These terms are slightly different. During the course, we will stick to these definitions. Do not mix them. Zsolt Tóth (University of Miskolc) Web Apps 2018 8 / 34

Modules, Components Tests Unit Component Integration Dependencies Build process Deployment Overview Component based Development Version number major.minor.build.revision alpha, beta, release candidate, commercial distribution Never use multiple version of the same module! Zsolt Tóth (University of Miskolc) Web Apps 2018 9 / 34

Overview Component based Development Interface based Programming Decouple components Loose coupling Exchangeable components Ease design and development Separates definition and implementation Defines expected behavior return type parameters exceptions documentation Zsolt Tóth (University of Miskolc) Web Apps 2018 10 / 34

Overview Component based Development Benefits Complex tasks can be broken down Increase re usability Simplify tasks Separate different programming language tools technologies Divide and Conquer! Zsolt Tóth (University of Miskolc) Web Apps 2018 11 / 34

Overview Component based Development Tools Maven Application mvn <goal> Eclipse plugin Packaging pom jar, war Project Structure src main test target pom.xml groupid, artifactid, version Build tool 1 validate 2 compile 3 test 4 package 5 integrationtest 6 verify 7 install 8 deploy Dependency manager Repository 1 local ~/.m2 2 company (Neuxs) 3 global (www.maven.org) Zsolt Tóth (University of Miskolc) Web Apps 2018 12 / 34

Overview MVC Model View Controller Architectural Pattern (1970) User Interface Implementation Desktop Applications traditionally Web Applications popular Variants MVP Model View Persenter MVA Model View Adapter MVVM Model View Viewmodel Zsolt Tóth (University of Miskolc) Web Apps 2018 13 / 34

Overview MVC Model Domain Objects POJOs Beans public getter / setter methods public default constructor Describe the Structure of the Entities Business Logic Processes Tasks Calculations Rules Persistence Database File System Text or binary files Zsolt Tóth (University of Miskolc) Web Apps 2018 14 / 34

Overview MVC View Visualize model objects Shown to the user Different representations Forms Tables Charts Capture user interaction User Interface Buttons Text fields Labels Images Check box Radio button Drop down lists Zsolt Tóth (University of Miskolc) Web Apps 2018 15 / 34

Overview MVC Controller Connects Model and View Invoke Business Services Transform user interactions Update View Zsolt Tóth (University of Miskolc) Web Apps 2018 16 / 34

Back end Table of Contents 1 Overview Architecture Component based Development Model View Controller 2 Back end Programming Languages Server Side Components 3 Front end Programming Languages Single Page Applications 4 Tutorials Zsolt Tóth (University of Miskolc) Web Apps 2018 17 / 34

Back end Common Gateway Interface CGI Program / Script PHP, C Generate HTML Programming Languages Started by the Web Server Create process per HTTP Requests Costly Zsolt Tóth (University of Miskolc) Web Apps 2018 18 / 34

Back end Programming Languages Script Languages PHP Most popular Local companies use it. Frameworks Yii Content Management Systems Joomla WordPress Easy to start Supported by web server hosting companies Wikipedia Python Ruby High level, general purpose language Popular but not in Miskolc Easy to Learn Google, Youtube Ruby on Rails Framework Not popular in Miskolc Twitter Zsolt Tóth (University of Miskolc) Web Apps 2018 19 / 34

Back end Programming Languages Object Oriented Languages Web Applications Complex, Reliable, Stable Expensive Infrastructure Components can be separated easily Good, well-tested code (hopefully ) Development Slow Standardized Fixed roles Methodologies Difficult If you do it well Lots of technology Both Java and C# are used by local companies You will learn about it in details at the "Web Application Development in Java" course. In this course you will use an existing Java based web application. Zsolt Tóth (University of Miskolc) Web Apps 2018 20 / 34

Overview Back end Server Side Components Zsolt Tóth (University of Miskolc) Web Apps 2018 21 / 34

Back end Server Side Components model & util util model General, common functions Logging Domain objects POJOs No beans Exceptions related to the Domain Zsolt Tóth (University of Miskolc) Web Apps 2018 22 / 34

Back end Server Side Components persist & persit-mysql persist Data Access Objects Interfaces Exceptions related to Persistence Existing object Not found Permission Denied... Do NOT related database! Defines function task NOT implementation persist-mysql May be merged into persist MySQL specific implementation Arbitrary technologies JDBC Hibernate MyBatis Alternatives persist-oracle persist-postgre persist-xml persist-filesystem Zsolt Tóth (University of Miskolc) Web Apps 2018 23 / 34

Back end Server Side Components service & service-impl service Interfaces for High Level Functions Exception Processes, Tasks Use Case service-impl Can be merged int service Use DAOs via Interface persist Zsolt Tóth (University of Miskolc) Web Apps 2018 24 / 34

Back end Server Side Components controller Connect services and view Map services to URL Convert HTTP Requests / Responses Parameters Status codes Conversion between business and value objects. Server uses Java Objects HTTP is text based Sanitize input data Java EE Servlets Spring Dispatcher Servlet Static content??? Endpoint reference Zsolt Tóth (University of Miskolc) Web Apps 2018 25 / 34

Back end Server Side Components Data Transfer Object Model object cannot be published. may contain sensitive data not beans DTOs are beans JSON Have no business logic Simplify the requests Defines complex, composite structures One parameter can be enough Assembler Mapping between business objects and DTOs Capture the rules and logic {"employees":[ { "firstname":"john", "lastname":"doe" }, { "firstname":"anna", "lastname":"smith" }, ]} Zsolt Tóth (University of Miskolc) Web Apps 2018 26 / 34

Front end Table of Contents 1 Overview Architecture Component based Development Model View Controller 2 Back end Programming Languages Server Side Components 3 Front end Programming Languages Single Page Applications 4 Tutorials Zsolt Tóth (University of Miskolc) Web Apps 2018 27 / 34

Front end Programming Languages HTML Plain text Markup Language Interpreted and visualized by the Browser Structural elements divisions paragraphs images tables lists forms <html> <head> <title>page Title</title> </head> <body> <h1>this is a Heading</h1> <p>this is a paragraph.</p> </body> </html> Zsolt Tóth (University of Miskolc) Web Apps 2018 28 / 34

Front end Programming Languages CSS Cascaded Style Sheets 1 Browser 2 External 3 Internal 4 In line Defines the appearance Text based CSS pre processors less.js SASS Stylus Templates Bootstrap body { background: blue; } h1 { color: white; text-align: center; } p { } font-family: verdana; font-size: 20px; Zsolt Tóth (University of Miskolc) Web Apps 2018 29 / 34

Front end Programming Languages JavaScript Client side programming Dynamic behavior Script Language Interpreted by the Browser Event handlers Buttons onload AJAX Frameworks AngularJS TypeScript document.getelementbyid( "demo").innerhtml = "Hello JavaScript"; Zsolt Tóth (University of Miskolc) Web Apps 2018 30 / 34

Front end Single Page Applications Single Page Applications Separate pages Independent HTML pages + Easy to create - Multiple pages - Redundancy - Huge network traffic Modular Site AJAX Page Fragments + No redundancy + Moderate network traffic - HTML fragments - Re-usability Single Page Applications AJAX JSON / XML Messages Wide range of client + Low Internet Traffic + Re usable components + Loose coupling - Client side computation - Not so easy to learn Zsolt Tóth (University of Miskolc) Web Apps 2018 31 / 34

Tutorials Table of Contents 1 Overview Architecture Component based Development Model View Controller 2 Back end Programming Languages Server Side Components 3 Front end Programming Languages Single Page Applications 4 Tutorials Zsolt Tóth (University of Miskolc) Web Apps 2018 32 / 34

Tutorials Goal Develop front end for an existing web applications! HTML CSS JavaScript AJAX "Real" work environment Practice current technologies Basics Advanced technologies in "Web Technologies II" course Prerequisites Linux bash WebStrom git, github Zsolt Tóth (University of Miskolc) Web Apps 2018 33 / 34

Tutorials Q&A Can I practice at home? Yes. You will learn it in the 1st tutorial. I don t know a technology. What can I do? You should have learned about each technology. Required technologies will be summarized in tutorials. I have got a problem with something. How can I solve it? Troubleshooting checklist 1 Read the error message 2 Google it 3 Ask your 1 friends 2 classmates 3 tutor Zsolt Tóth (University of Miskolc) Web Apps 2018 34 / 34