+ All Categories
Home > Documents > BORYANA DELIYSKAINTRODUCTION Web programming as an element of software engineering does not mean...

BORYANA DELIYSKAINTRODUCTION Web programming as an element of software engineering does not mean...

Date post: 14-Oct-2020
Category:
Upload: others
View: 1 times
Download: 0 times
Share this document with a friend
23
1 BORYANA DELIYSKA INTRODUCTION TO WEB PROGRAMMING SOFIA 2018 ISBN 978-619-90990-1-8
Transcript
Page 1: BORYANA DELIYSKAINTRODUCTION Web programming as an element of software engineering does not mean developing code of one or more web programming languages only. It is complex activity

1

BORYANA DELIYSKA

INTRODUCTION

TO WEB PROGRAMMING

SOFIA 2018

ISBN 978-619-90990-1-8

Page 2: BORYANA DELIYSKAINTRODUCTION Web programming as an element of software engineering does not mean developing code of one or more web programming languages only. It is complex activity

2

This book is meant for professionals and anyone with an interest in WWW,

information and communication technologies (ICT). Given the vigorous rate of

development in the area, the book is in electronic form, which facilitates its regular

update.

Page 3: BORYANA DELIYSKAINTRODUCTION Web programming as an element of software engineering does not mean developing code of one or more web programming languages only. It is complex activity

3

CONTENT

CONTENT 3

INTRODUCTION 7

ABBREVIATION LIST 8

LIST OF FIGURES 12

LIST OF TABLES 13

Theme 1. WEB PROGRAMMING. ESSENCE. TYPES. RESOURCES 14

1.1. Nature and purpose of web programming 14

1.2. Web programming types 14

1.3. Protocols, standards, technologies and platforms for web application building

and exploitation 15

1.3.1. Protocols 15

1.3.2. Web technologies and standards 16

1.3.3. Software platforms 17

1.4. Content management systems 21

Theme 2. WEB PROGRAMMING LANGUAGES. NATURE AND CLASSIFICATION.

SYNTAX AND GRAMMAR. COMPARATIVE ANALYSIS

2.1.2. Key features

2.2. Historical reference and review of web programming languages

2.3. Classification of web programming languages

2.3.1. Client-side languages

2.3.2. Server-side languages

2.5. Web programming language comparison

2.5.1. Perl

2.5.2. Java and Scala

2.5.3. PHP

2.5.4. C# and F#

2.5.5. JavaScript (JS)

2.5.6. VBScript

2.5.7. Python and Boo

2.5.8. Ruby

Page 4: BORYANA DELIYSKAINTRODUCTION Web programming as an element of software engineering does not mean developing code of one or more web programming languages only. It is complex activity

4

2.5.10. Gо

2.5.11. Summary

Theme 3. WEB APPLICATIONS

3.1. Web applications. Nature and types. Folder structure

3.1.1. Web application architecture

3.1.2. Access devices

3.1.3. Web application purpose

3.2. Declaring and running scripts in web applications

3.2.1. Declaring languages and scripts in the page head

3.2.2. Declaring languages and executing scripts in the page body

3.2.3. Server scripts declaring and execution

3.3. СОМ, COM+, DCOM, OLE Automation and ActiveX components

3.4. Rich internet applications

3.4.1. RIA resources

3.4.2. RIA development stages

Theme 4. WEB PROGRAMMING FOR MOBILE SYSTEMS

4.1. Mobile OS

4.1.1. Mobile Windows OS

4.1.2. Apple iOS

4.1.3. Google Android

4.1.4. WebOS of LG Electronics

4.1.5. Tizen of Samsung and Intel

4.1.6. Sailfish OS

4.2. Specialized web programming languages for mobile applications

4.3. Mobile app platforms

4.3.1. Appcelerator

4.3.2. App Inventor

4.3.3. Buzztouch

4.3.4. EachScape

4.3.5. Corona SDK

Page 5: BORYANA DELIYSKAINTRODUCTION Web programming as an element of software engineering does not mean developing code of one or more web programming languages only. It is complex activity

5

4.3.6. Apache Cordova

4.3.7. Meme

4.3.8. Mobile Roadie

4.4. Mobile app development libraries

4.4.1. jQueryMobile

4.4.2. Zepto.js

4.4.3. jQT

4.4.4. React Native

4.5. Mobile app stories

Theme 5. DATA SOURCES IN WWW. DATABASE INTERFACE

5.1. Structured server DB

5.1.1. Structured server DBMS

5.1.2. Structured server DSMS

5.2. Non-structured server DBs

5.2.1. Column DBs

5.2.2. Document DBs

5.2.3. Key-value DB (key-value store)

5.2.4. Graph DB

5.2.5. Hybrid (multi-model) DB

5.2.6. Semantic DB

5.3. Data source interface. Technologies

5.3.1. DB access models

5.3.2. Microsoft DB access technologies

5.3.3. JDBC technology

Theme 6. TECHNOLOGIES AND PLATFORMS FOR WEB APPLICATIONS.

COMPARATIVE ANALYSIS

6.1. Gateway technologies

6.1.1. CGI

6.1.2. SAPI

6.1.3. SSI interface

6.2. Java technologies

6.2.1. Interfaces for communication between remote applications

Page 6: BORYANA DELIYSKAINTRODUCTION Web programming as an element of software engineering does not mean developing code of one or more web programming languages only. It is complex activity

6

6.2.2. Java platforms

6.3. ASP technology

6.4. LAMP (Linux, Apache, MySQL, PHP) platform

6.4.1. LAMP components

6.4.2. LAMP resources

6.5. .NET platform

6.5.1. .NET Framework

6.5.2. .NET API

6.5.3. Visual Studio platform

6.6. ASP.NET technology

6.6.1. ASP.NET essence

6.6.2. ASP.NET components

6.7. ColdFusion technology

6.8. PostgreSQL + Perl

6.9. RIA resources

6.9.1. AJAX (Asynchronous JavaScript and XML) technologies

6.9.2. JavaFX

6.9.3. JavaScript platforms for SPA

6.9.4. Other platforms

6.10. Package managers

6.10.1. npm (Node Package Manager)

6.10.2. Gulp.js

6.10.3. Yeoman

6.10.4. Bower

6.10.5. PEAR (PHP Extension and Application Repository)

6.10.6. СPAN (Comprehensive Perl Archive Network)

REFERENCES

APPENDICES

APPENDIX 1. LIST OF WEB APPLICATION PLATFORMS AND ENVIRONMENTS

APPENDIX 2. Terminological dictionary

Page 7: BORYANA DELIYSKAINTRODUCTION Web programming as an element of software engineering does not mean developing code of one or more web programming languages only. It is complex activity

7

INTRODUCTION

Web programming as an element of software engineering does not mean developing

code of one or more web programming languages only. It is complex activity related to

method, technology, design and codification of applications (web apps) representing

organized software structures of content and functionality in the web.

In the simplest case, web apps are static web pages, but lately these are very rarely

encountered. The contemporary web apps are sites consisting of linked (static and

dynamic) web pages, scripts and databases (DB). For their developing WWW and

desktop ICT are used.

There is great number of software platforms – one- or multi-language and

possessing all resources for web apps development and implementation. Nevertheless,

even experienced professionals find it difficult to be uptake about the dynamic

development of ICT theory and practice and many firm technologies, including huge

variety of languages, databases and frameworks.

The purpose of this book is to present optimally the current state of web

technologies, clearly recognizing that they are extremely dynamic and very often with a

commercial orientation. Moreover, there is vastly ambiguity in the terminology in the

area. Due to that, the book is available in an electronic form with a periodical update and

possibility to feedback with the readers. My wish is to create a useful tool for beginners

and for specialists also. I have aspired to summarize the most important features,

technologies and languages related to web programming.

The effective understanding of the content, separated into six themes, requires

preliminary knowledge of basic ICT.

In Theme 1 essence, purpose and classification of web programming is considered as

well as used web protocols, standards and platforms.

Theme 2 is an overview of features of the widespread general-purpose and scripting

languages for web programming.

Theme 3 refers to kind of web apps, their declaration and execution. A special

attention is being paid to Rich Internet Applications (RIA).

Theme 4 is dedicated to mobile web application programming as the most

dynamically developing branch in the area.

In Theme 5 online database management systems (DBMS) are presented, including

their interface, access methods and technologies.

In Theme 6, the most popular current web programming platforms and technologies

are considered.

There are two appendices: Appendix 1 is summary reference about most popular

web integrated development environments (IDEs) and platforms. Appendix 2 is a brief

terminological dictionary.

Page 8: BORYANA DELIYSKAINTRODUCTION Web programming as an element of software engineering does not mean developing code of one or more web programming languages only. It is complex activity

8

ABBREVIATION LIST

AJAX – Asynchronous JavaScript and XML

API – Application Program Interface

ASP – Active Server Pages

ATF – Ajax Tools Framework

AWT – Abstract Windowing Toolkit

BCL – Base Class Library

CCMS – Component Content Management System

CDI – Context and Dependency Injection

CEP – Complex Event Processing

CFML – Cold Fusion Markup Language

CGI – Common Gate Interface

CIL – Common Intermediate Language

CLI – Call Level Interface

CLI – Command Line Interface

CLI – Common Language Infrastructure

CMS – Content Management Systems

COM – Component Object Model

CRM – Customer Relationship Management

CUI - Console User Interface or Character User Interface

DB – Database

DBMS – Database Management System

DHT – Distributed Hash Table

DLL – Dynamic-Linkable Library

DOM – Document Object Model

DSMS – Data Stream Management System

DSN – Data Source Name

ECMS – Enterprise Content Management Systems

EDA – Еvent-Driven Architecture

EIS – Enterprise Information Systems

EJB – Enterprise Java Beans

Page 9: BORYANA DELIYSKAINTRODUCTION Web programming as an element of software engineering does not mean developing code of one or more web programming languages only. It is complex activity

9

ERP – Enterprise Resource Planning

GIOP – General Inter-ORB Protocol

GUI – Graphical User Interface

GWT – Google Web Toolkit

IDE – Integrated Development Environment

IDL - Interface Definition Language

IIS – Internet Information Server

IIOP – Internet Inter-ORB Protocol

IoC – Inversion of Control

IoT – Internet of Things

IS – information system

ISAM – Indexed Sequential Access Method

ISAPI – Internet Information Server Application Programing Interface

JAAS – Java Authentication and Authorization Service

JACC – Java Authorization Contract for Containers

JAF – JavaBeans Activation Framework

JAX-WS – Java API for XML Web Services

JAX-RS – Java API for RESTful Web Services

JCA – J2EE Connector Architecture

JDBC – Java Database Connectivity

JDK – Java Development Kit

JEE – Java Enterprise Edition

JME – Java Micro Edition

JMS – Java Message Service

JNDI – Java Naming and Directory Interface

JPA – Java Persistence API

JRE – Java Runtime Environment

JRMP – Java Remote Method Protocol

JSDK – Java Servlet Development Kit

JSE – Java Standard Edition

JSF – Java Server Faces

Page 10: BORYANA DELIYSKAINTRODUCTION Web programming as an element of software engineering does not mean developing code of one or more web programming languages only. It is complex activity

10

JSON – JavaScript Object Notation

JSP – Java Server Pages

JSR – Java Specification Request

JSTL – Java Server Pages Standard Tag Library

JTA – Java Transaction API

JVM – Java Virtual Machine

LCMS – Learning Content Management Systems

MVC – Model-View-Controller

NSAPI – Netscape Server Application Programing Interface

OLAP – OnLine Analytical Processing

OLTP – OnLine Transaction Processing

OMG – Object Management Group

ORB – Object Request Brokers

OS – Operating System

OSI – Open System Interconnection

PDA – Personal Digital Assistants

PDK – Perl Dev Kit

RAP – Rich AJAX Platform

RDBMS – Relational Database Management System

RDSMS – Relational Data Stream Management System

RFC – Request for Comments

RIA – Rich Internet Application

RMI – Remote Method Invocation

RPC – Remote Procedure Call

SAPI – Server Application Programming Interface

SDK – Software Development Kit

SOA – Service-Oriented Architecture

SPA – Single-Page Application

SSI – Server-Side Include

StAX – Streaming API for XML

ТСР – Transport Control Protocol

Page 11: BORYANA DELIYSKAINTRODUCTION Web programming as an element of software engineering does not mean developing code of one or more web programming languages only. It is complex activity

11

UI – User Interface

UnQL – Unstructured Query Language

URI – Uniform Resource Identifier

UWP - Universal Windows Platform

W3C – World Wide Web Consortium

WPF - Windows Presentation Foundation

WWW – World Wide Web

XHR – XMLHttpRequest

XML – eXtended Markup Language

Page 12: BORYANA DELIYSKAINTRODUCTION Web programming as an element of software engineering does not mean developing code of one or more web programming languages only. It is complex activity

12

LIST OF FIGURES

Figure 1.1. Functional schema of WWW 16

Figure 1.2. Schema of web technologies 16

Figure 1.3. Difference between library and software framework 19

Figure 1.4. CMS types 20

Figure 2.1. Classification of programming languages for 2012–2016 (by GitHub and

Stackoverflow) 41

Figure 3.1. Java web application folder structure 43

Figure 3.2. Exemplary content of ASP.NET web application folder 44

Figure 3.3. Schema of three-tier web application architecture 45

Figure 3.4. Example of multilayer architecture 46

Figure 3.5. Schema of MVC web application architecture 47

Figure 3.6. RIA controls (by Neil 2009) 59

Figure 3.7. Sequence of RIA interface structure building 61

Figure 3.8. An excerpt of Adobe Flex Builder component library 62

Figure 3.9. Comparison of ordinary and „sandbox” environment 63

Figure 5.1. Database access models 77

Figure 5.2. Microsoft DB access technologies (by MSDN library) 79

Figure 5.3. ODBC components 80

Figure 5.4. OLE DB structure 81

Figure 5.5. ADO, ODBC and OLE DB interconnections 82

Figure 5.6. ADO.NET access models (by Chand 2002) 82

Figure 5.7. JDBC architecture 84

Figure 6.1. Shema of request processing in CGI 85

Figure 6.2. Common RMI architecture 88

Figure 6.3. CORBA architecture 89

Figure 6.4. JRE architecture 90

Figure 6.5. JEE architecture 91

Figure 6.6. АJAX schema 101

Page 13: BORYANA DELIYSKAINTRODUCTION Web programming as an element of software engineering does not mean developing code of one or more web programming languages only. It is complex activity

13

LIST OF TABLES

Table 1. General reference of the widespread web programming languages

Table 2. Syntax and grammar specificity of the popular contemporary web

programming languages

Table 3. Basic and structured data type declaring in the popular contemporary web

programming languages

Table 4. Complex data type declaring

Table 5. Operators

Table 6. Aggregate characteristics of the most widespread web programming

languages

Table 7. Mobile services comparison

Table 8. RIA platform features

Page 14: BORYANA DELIYSKAINTRODUCTION Web programming as an element of software engineering does not mean developing code of one or more web programming languages only. It is complex activity

14

Theme 1. WEB PROGRAMMING. ESSENCE. TYPES. RESOURCES

1.1. Nature and purpose of web programming

In common sense, web programming is a set of web site development activities in

WWW (World Wide Web) based on the public network Internet.

In the simplest case, each web site includes static web pages, but usually is

aggregation of static and dynamic web pages. The later ones link under certain rules

data sources (structured and non-structured DB) and program codes (scripts), realizing

some functionality. This combination of web pages, scripts and DB is called web

application. The web applications are distributed (on one or more servers), working

under HTTP and available by browser or non-browser client application serving as

network interface.

In details, web programming refers to writing, markup and coding, involved in Web

site building (known as web development), which includes web content, web client and

server scripting and network security1.

In narrow sense, the web programming as a part of software engineering is a set of

activities and technologies of script development. In the book, namely this aspect of the

web programming is considered. They are not being discussed markup and styling

languages that are the subject of web design.

The scripts run under browser or server and one of their biggest advantages

compared to conventional (desktop) applications is that they are written in languages

compatible with the most local and network OS. This means that there is no need to be

maintained different versions of applications.

Other advantage is the lower development cost due to the availability of multiple

ready-made resources (content management systems (CMS), script libraries, DBMS etc.).

Moreover, the most of them do not require installation and run directly (on browser or

server).

The disadvantage of the scripts is their low performance because they are mostly

interpretative or partly compiled and dependent of exchange rate between server and

client. However, in contemporary languages the difference between compiled and

interpretative code is not so big yet.

Other disadvantage is that equal result visualization onto different computer screens

or browsers is impossible. However, there are technologies that largely deal with this

problem (see 3.3).

By the semantic technology development, the web programming will become even

more indispensable in the data processing, information and knowledge extraction and

presentation.

1.2. Web programming types

1 http://www.techopedia.com/definition/23898/web-programming

Page 15: BORYANA DELIYSKAINTRODUCTION Web programming as an element of software engineering does not mean developing code of one or more web programming languages only. It is complex activity

15

The web programming is classified by different indications – destination, languages,

platforms, functionality etc.

The scripts start (directly or by preliminary parameter selection) from:

web page in browser;

non-browser software application;

Command Line Interface (CLI), called also Console User Interface or Character User

Interface (CUI));

other scripts.

The results of their execution in text screens, web pages or in windows outside

browser are displayed. Most frequently and for the sake of user convenience, the results

are in web pages, called also interface (or front-end) of the applications.

The requests for information (or knowledge) of the web space are captured in

dynamic web pages, while the results – in static ones. Obviously, the dynamic web

pages, called also web forms, are interactive, but the static pages are for review only.

The web programming is various according to:

type of created applications – static (with client scripts), dynamic (with client and

server scripts), RIA (see 3.4);

type of network access – for fixed or mobile devices;

programming languages (see Theme 2);

used technologies (see Theme 6).

1.3. Protocols, standards, technologies and platforms for web application

building and exploitation

In contemporary web programming integrated technologies and platforms are used

not only for script creating, but also for complete development and testing of web

applications, including data sources. All these technologies and platforms stand on

network protocols.

1.3.1. Protocols

The network protocols2 are foundation of all activities and services on Internet. In

particular, WWW works on HTTP (Hypertext Transfer Protocol), associated with the

2 Agreements (rules) between manufacturers about network communications implemented by

hardware and software.

Page 16: BORYANA DELIYSKAINTRODUCTION Web programming as an element of software engineering does not mean developing code of one or more web programming languages only. It is complex activity

16

application layer of OSI3 and based on the lower level protocol stack TCP/IP4. In short,

HTTP manages browser request and server response (фиг.1.1).

Figure 1.1. Functional schema of WWW

1.3.2. Web technologies and standards

The script, markup and styling languages, DBMS, platforms, frameworks etc. are

components of various standards and technologies for web application development

and support. In the specialized literature, the term web technology is often used instead

each of these components.

Because of that and in the light of the following statement, it should be specified that

web technology is kind of ICT, a set of methods and resources for interaction between

web servers and clients at WWW. The resources are languages, interfaces, platforms,

frameworks and architectures for content creating, distribution and utilization.

Web technologies are proprietary and not always standardized and compatible

(Figure 1.2). The most popular of them are CGI, ASP, ASP.NET, JSP, JSF, AJAX, ColdFusion

etc., based on frameworks and platforms .NET, LAMP (WAMP, MAMP, XAMP), JSE (Java

Standard Edition)5, JEE (Java Enterprise Edition) etc. Some of them (CGI, ASP etc.) are

obsolete and not supported but still in use. On the other hand, new ones being created

continuously. Here, the actual state to 2017 is discussed.

3 OSI (Open System Interconnection) is seven-level model of network architecture

(http://support.microsoft.com/kb/103884). 4 A set of protocols managing data transfer between computers in internet and working in the

network and transport layers of OSI. 5 www.oracle.com/technetwork/java/javase/overview/

Browser

Creates and

sends data search

and retrieval

requests.

Server

Executes server

scripts and works with

DB. Sends results to the

browser.

Browser

Visualizes results.

Executes client scripts.

Page 17: BORYANA DELIYSKAINTRODUCTION Web programming as an element of software engineering does not mean developing code of one or more web programming languages only. It is complex activity

17

Figure 1.2. Schema of web technologies

Web standard denotes formal non-proprietary set of rules and technical

specifications about technologies for creation and interpretation of content in WWW.

Lately, this concept is related mainly to the validation of good practices for web site

development, including languages, design models and methods. These standards are

supported by W3C (World Wide Web Consortium)6 and other standardization

organizations (ISO, ITU etc.).

Therefore, each web standard is one or more technologies endorsed by

abovementioned organizations.

1.3.3. Software platforms

Each web application is created or works on one or more software platforms. The

concept software platform is too relative. For example, in the computer such is its

operating system (Windows 2000, XP, Vista, Linux, Mac OS X etc.), on which the

applications work.

In general, any software that performs significant tasks is a platform. Thus, SQL –

language for relational database management, registration and analysis in CRM

(Customer Relationship Management) and ERP (Enterprise Resource Planning) systems,

is platform. The web application platforms for (web platforms) include development

environment, runtime environment and software framework. Otherwise, these

6 W3C (https://www.w3.org) is an international community to develop Web standards.

Page 18: BORYANA DELIYSKAINTRODUCTION Web programming as an element of software engineering does not mean developing code of one or more web programming languages only. It is complex activity

18

platforms are composed of subsystems building common infrastructure for elaboration

and execution of multiple associated applications.

The most popular web platforms are LAMP, .NET, JЕЕ, JRE7 (Java Runtime

Environment) etc.

1.3.3.1. Integrated development environment

Integrated Development Environment (IDE) necessarily includes a source code

editor, compiler and/or interpreter, debugger and libraries. Moreover, it can include

version control system, graphical user interface (GUI) tools etc.

In the specialized literature often no distinction between a platform and

development environment. However, the platform is a broader concept and includes

resources for running applications outside their development environment. One might

say that a platform can include one or more development environments and vice versa –

an environment can work on different platforms.

The platforms and the development environments could be classified by the

architecture of created applications (see 3.1.1), by the function, the access type, the

manufacturer etc.

By the function they are:

Specialized environments for particular language – JаvaScriptCore8, Windows 8

JavaScript9, JRE, Perl Dev Kit (PDK)10, ActivePython11 and many others.

Environments for multiple languages (language stacks) as:

Komodo12 – proposes full range of tools for dynamic web application

development, including AJAX technologies with CSS, HTML, XML and

scripting languages Python13, PHP14, Ruby15, Perl, JavaScript.

Eclipse16 – mainly for Java and having additional modules for Ada, ABAP,

C, C++, COBOL, D, Fortran, Haskell, JavaScript, Julia, Lasso, Lua, NATURAL,

Perl, PHP, Prolog, Python, R, Ruby etc.).

WinRT17 and many others.

7 http://www.oracle.com/technetwork/java/javase/downloads/jre8-downloads-2133155.html 8 https://developer.apple.com/documentation/javascriptcore 9 http://www.i-programmer.info/programming/winrt/3560-getting-started-with-winrt-

javascript.html 10 https://www.activestate.com/blog/2016/01/perl-dev-kit-95-released 11 https://www.activestate.com/activepython 12 https://www.activestate.com/komodo-ide 13 https://www.python.org 14 www.php.net/ 15 https://www.ruby-lang.org/en 16 https://eclipse.org 17 https://msdn.microsoft.com/en-us/magazine/mt745094.aspx

Page 19: BORYANA DELIYSKAINTRODUCTION Web programming as an element of software engineering does not mean developing code of one or more web programming languages only. It is complex activity

19

Server database management systems:

desktop DBMS extended with web modules, as: MS Access, FileMaker

Server18, Postgres19, DB2, DBF Manager, FireBird, Ingres20, MongoDB21,

Oracle Database etc.;

dedicated web DBMS22: SQL Server, Remote DBS, Sentences, Zoho

Creator23, PostgreSQL, Cloud SQL, AppGini, MTH (MyTaskHelper) and

many others.

Combined multiplatform development environments called also software stacks

or full stacks, including all necessary resources for web application elaboration –

frameworks (libraries), servers and DB for one or more languages. Such stacks

are:

MS Visual Studio (see 5.6.5.3);

LAMP (Linux/Apache/MySQL/PHP) and its variants WAMP, MAMP,

XAMPP etc. (see 6.4);

MEAN.io24, including MongoDB, Express.js25, AngularJS and Node.js26 (for

JavaScript);

MERN27 (MongoDB + Express.js + React + Redux + Node.js + Webpack);

Ruby Stack: Ruby/Ruby on Rails, RVM28 (Ruby Virtual Machine), MySQL,

Apache и PHP;

Django Stack: Python, Django29, Apache, MySQL, etc.

By the type of access, the platforms and IDEs are for fixed and mobile systems,

depending on the computer connection to the network. The fixed system platforms

working on screens between 15” and 24” have more evolved functionality given higher

computing power and capacity. Many of them are also used for mobile web applications.

The mobile wireless internet connection is provided by cellular network operators

and ensures browser-based internet services (mobile web) for handheld devices

18 http://www.filemaker.com/products/filemaker-server/ 19 http://postgresguide.com/ 20 https://www.ingress.com/ 21 http://mongodb.org 22 http://www.capterra.com/database-management-software/ 23 https://www.zoho.eu/creator/ 24 http://mean.io 25 https://expressjs.com/ 26 https://nodejs.org 27 mern.io/

28 https://rvm.io/ 29 https://www.djangoproject.com

Page 20: BORYANA DELIYSKAINTRODUCTION Web programming as an element of software engineering does not mean developing code of one or more web programming languages only. It is complex activity

20

(smartphones, tablets) with a small screen (average of 2.5 to 10 inches), sensor control

and often without keyboard.

There are special platforms and environments intended to mobile web application

development (see 4.3).

1.3.3.2. Software framework

Software framework is universal reusable platform, providing functionality or shell

to build both individual applications and complete projects and solutions. It includes a

set of libraries with reusable components (code abstractions), enveloped in well-defined

Application Program Interface (API). Unlike ordinary libraries, the framework offers:

Inversion of Control (IoC)30 – a principle of reversing control in software

engineering, concluding in breaking dependencies between levels of developer

code by shared abstractions, i.e. portions of the code receive the control flow

from the framework, instead code giving a flow of calls to functions in the

framework (Figure 1.3).

Default behavior.

Enhancement - the developer can revoke or add own code for specific

functionality.

Non-modifiable framework code, unlike the extensions added by the developer.

Compiler and other programs necessary for application software development.

Figure 1.3. Difference between library and software framework

The same framework can work on different platforms (OS). For example, the PHP

framework Laravel (or Symphony) works on Windows and on Linux also.

The framework Spring MVC for Java requires Java platform, working on Windows

and on Linux (two levels of platforms). Other Java frameworks are Vaadin, GWT, Grails,

Struts and etc.

1.3.3.3. API

30 Повече информация може да намерите на адрес:

https://www.martinfowler.com/articles/injection.html

Page 21: BORYANA DELIYSKAINTRODUCTION Web programming as an element of software engineering does not mean developing code of one or more web programming languages only. It is complex activity

21

As an element of framework, generally API is a set of clearly defined functions and

methods for communication between software components.

The best-defined APIs are those linking applications and OS. For example, OS offers

API for execution user requests from application software to system functions. Similar

are the requests for read/write file data, file structure support, connection to

peripherals, working with windows, controls, dialog boxes etc. In that, the API executes

commands invoking OS, interrupting and activation respective OS function and

implementing requests.

Other, commonly defined API are for various network services – sending and

receiving data to/from local and global networks, communication with resources of

mobile devices etc.

The API functions are embedded in all development environments.

1.4. Content management systems

In principle, the concept content management denotes a set of processes and

technologies helping content collection, management and publication in any form or

environment. The content can be textual, graphical or multimedia.

Increasingly in recent years, the direct coding, requiring serious qualification is

replaced by systems for automated creation and maintenance of web applications,

known as Content Management Systems (CMS). They do not require the designer to

know in details web technologies and in particular – to be web programmer. Typically,

CMSs are relatively easy to learn and use. They have built-in visual editor for creating,

updating and publishing content, adding or deleting files and folders on the server etc.

Moreover, links are automatically updated.

CMSs propose variety of ready modules as well as web application templates, for

example, chat, forum, counter etc. installed easy in the pages. In that, CMSs are

compatible with other simultaneously or successively used software environments

(editors) for content processing.

The first CMSs arise in 1995. Depending on the purpose and functionality, they are

(Figure 1.4):

Page 22: BORYANA DELIYSKAINTRODUCTION Web programming as an element of software engineering does not mean developing code of one or more web programming languages only. It is complex activity

22

Figure 1.4. CMS types

Enterprise Content Management Systems (ECMS) – about business process content

(documents) gathering, management, storage and supply.

Learning Content Management Systems (LCMS) – for learning content

development, management, support and supply.

Component Content Management System (CCMS) – for document creating using

parts named web components. These components saved in CMS library are

reusable and can be applied in other documents.

Image Content Management System (ICMS), in which users can upload and

process photos, clips and images.

Publication CMS (PCMS) – for blogs and other social communications.

Transactional CMS (TCMS) – for example, e-commerce, money exchange, e-

catalogs, etc.

Often CMS are of mixed type.

Nowadays Joomla31, Drupal32 and WordPress33 are the most popular CMS. They are

open source, free, easy to learn and use. More specifically, WordPress is best suited for

blogs and news. Other platforms designed for blogging are Blogger34, Tumblr35,

31 https://www.joomla.org 32 https://www.drupal.org 33 https://bg.wordpress.org 34 https://www.blogger.com 35 https://www.tumblr.com

CMS

Learning Content

Management

Systems (LCMS) Publicatio

n CMS (PCMS)

Component Content

Management System

(CCMS)Enterprise Content

Management Systems

(ECMS)

Image Content

Management System

(ICMS)

Transactional CMS (TCMS)

Page 23: BORYANA DELIYSKAINTRODUCTION Web programming as an element of software engineering does not mean developing code of one or more web programming languages only. It is complex activity

23

Medium36, Svbtle37, Quora38, Postach.io39, Google+40, SETT41, Ghost42, Squarespace43,

Typepad44, Posthaven45, etc.

Drupal is good platform for e-commerce and enterprise applications, but requires

knowledge about web programming. Moreover, it is quite clumsy for installation and

use. Especially for e-commerce is SEOTOASTER V2 E commerce.

Joomlа is universal CMS with richer opportunities than WordPress, but is relatively

difficult to master. However, it is lighter than Drupal.

For imagery galleries, besides the universal CMS, they are used platforms 4Images46,

TextPattern47, CMS of INSYS48 etc.

Other less known CMSs are Article Publisher, Bitrix, CMSBOX, eContent, Orchard,

Host CMS, OpenCart and a few hundred free and open applications.

But generally, CMS are very vulnerable to hacking attacks.

36 https://medium.com 37 https://svbtle.com 38 https://www.quora.com 39 https://postach.io 40 https://plus.google.com 41 https://sett.com 42 https://ghost.org 43 https://www.squarespace.com 44 https://www.typepad.com 45 https://posthaven.com 46 https://www.4homepages.de 47 https://textpattern.com 48 https://www.insys.bg/bg/cms


Recommended