Java (programming language)

JavaJava programming languageJava language
., Java was one of the most popular programming languages in use according to GitHub, particularly for client-server web applications, with a reported 9 million developers. Java was originally developed by James Gosling at Sun Microsystems (which has since been acquired by Oracle) and released in 1995 as a core component of Sun Microsystems' Java platform. The original and reference implementation Java compilers, virtual machines, and class libraries were originally released by Sun under proprietary licenses. As of May 2007, in compliance with the specifications of the Java Community Process, Sun had relicensed most of its Java technologies under the GNU General Public License.

Solution stack

software stackstacktechnology stack
Akka (toolkit) (actor implementation). Riak (data store). Apache Kafka (messaging). Apache Spark (big data and MapReduce). MEAN :. MongoDB (database). Express.js (app controller layer). AngularJS/Angular (web app presentation). Node.js (web server). MERN :. MongoDB (database). Express.js (app controller layer). React.js (web app presentation). Node.js (web server). MEVN :. MongoDB (database). Express.js (app controller layer). Vue.js (web app presentation). Node.js (web server). NMP :. Nginx (web server). MySQL or MariaDB (database). PHP (programming language). OpenACS. Linux or Windows (operating system). AOLserver (web server). OpenACS (web application framework).

Scala (programming language)

ScalaScala programming languageScala.js
, an open-source Web application framework that supports Scala. Akka, an open-source toolkit for building concurrent and distributed applications.

Erlang (programming language)

ErlangErlang programming languageErlang/OTP
Erlang is a general-purpose, concurrent, functional programming language, and a garbage-collected runtime system. The term Erlang is used interchangeably with Erlang/OTP, or Open Telecom Platform (OTP), which consists of the Erlang runtime system, several ready-to-use components (OTP) mainly written in Erlang, and a set of design principles for Erlang programs.

Dart (programming language)

DartDart programming languageECMA-408
The Isolate concept builds upon the Actor model, which is most famously implemented in Erlang. The Mirror API for performing controlled and secure reflection was first proposed in a paper by Gilad Bracha (who is a member of the Dart team) and David Ungar and originally implemented in Self. Dart initially had a mixed reception and the Dart initiative has been criticized by some for fragmenting the web, due to the original plans to include a Dart VM in Chrome. Those plans were dropped to focus instead on compiling Dart to JavaScript. * * DartPad Script snapshots. Dart programs can be compiled into snapshot files.

Python (programming language)

PythonPython programming languagePython 2
Python can serve as a scripting language for web applications, e.g., via mod_wsgi for the Apache web server. With Web Server Gateway Interface, a standard API has evolved to facilitate these applications. Web frameworks like Django, Pylons, Pyramid, TurboGears, web2py, Tornado, Flask, Bottle and Zope support developers in the design and maintenance of complex applications. Pyjs and IronPython can be used to develop the client-side of Ajax-based applications. SQLAlchemy can be used as data mapper to a relational database. Twisted is a framework to program communications between computers, and is used (for example) by Dropbox.

Gatling (software)

Gatling is an open-source load and performance testing framework based on Scala, Akka and Netty. The first stable release was published on January 13, 2012. In 2015, Gatling's founder, Stéphane Landelle, created a company (named "Gatling Corp"), dedicated to the development of the open-source project. According to Gatling Corp's official blog, Gatling was downloaded more than 800,000 times (August 2017). In June 2016, Gatling officially presented Gatling FrontLine, Gatling's Enterprise Version with additional features. The software is designed to be used as a load testing tool for analyzing and measuring the performance of a variety of services, with a focus on web applications.

Java (software platform)

JavaJava platformJava application
This trend has continued from its initial Web-based start:. 2) * The Java platform has matured into an Enterprise Integration role in which legacy systems are unlocked to the outside world through bridges built on the Java platform. This trend has been supported for Java platform support for EAI standards like messaging and Web services and has fueled the inclusion of the Java platform as a development basis in such standards as SCA, XAM and others. 3) * Java has become the standard development platform for many companies' IT departments, which do most or all of their corporate development in Java.


URLsUniform Resource Locatorweb address
A Uniform Resource Locator (URL), colloquially termed a web address, is a reference to a web resource that specifies its location on a computer network and a mechanism for retrieving it. A URL is a specific type of Uniform Resource Identifier (URI), although many people use the two terms interchangeably. URLs occur most commonly to reference web pages (http), but are also used for file transfer (ftp), email (mailto), database access (JDBC), and many other applications.

Operating system

operating systemsOScomputer operating system
An operating system (OS) is system software that manages computer hardware, software resources, and provides common services for computer programs.

Application programming interface

APIAPIsapplication programming interfaces
An API may be for a web-based system, operating system, database system, computer hardware, or software library. An API specification can take many forms, but often includes specifications for routines, data structures, object classes, variables, or remote calls. POSIX, Windows API and ASPI are examples of different forms of APIs. Documentation for the API usually is provided to facilitate usage and implementation.

Java virtual machine

JVMJava Runtime EnvironmentJRE
A Java virtual machine (JVM) is a virtual machine that enables a computer to run Java programs as well as programs written in other languages that are also compiled to Java bytecode. The JVM is detailed by a specification that formally describes what is required in a JVM implementation. Having a specification ensures interoperability of Java programs across different implementations so that program authors using the Java Development Kit (JDK) need not worry about idiosyncrasies of the underlying hardware platform.

Web service

web servicesserviceservices
In practice, a Web service commonly provides an object-oriented Web-based interface to a database server, utilized for example by another Web server, or by a mobile app, that provides a user interface to the end-user. Many organizations that provide data in formatted HTML pages will also provide that data on their server as XML or JSON, often through a Web service to allow syndication, for example, Wikipedia's Export. Another application offered to the end-user may be a mashup, where a Web server consumes several Web services at different machines and compiles the content into one user interface. Asynchronous JavaScript And XML (AJAX) is a dominant technology for Web services.

Apache License

Apache License 2.0Apache 2.0Apache
The Apache License is a permissive free software license written by the Apache Software Foundation (ASF). It allows users to use the software for any purpose, to distribute it, to modify it, and to distribute modified versions of the software under the terms of the license, without concern for royalties. The ASF and its projects release their software products under the Apache License. The license is also used by many non-ASF projects.

Futures and promises

In the actor model, an expression of the form is defined by how it responds to an message with environment E and customer C as follows: The future expression responds to the message by sending the customer C a newly created actor F (the proxy for the response of evaluating ) as a return value concurrently with sending an message with environment E and customer C. The default behavior of F is as follows: However, some futures can deal with requests in special ways to provide greater parallelism. For example, the expression can create a new future that will behave like the number. This trick does not always work.

Web server

web serverswebserverHTTP server
Open source web application. Server Side Includes, Common Gateway Interface, Simple Common Gateway Interface, FastCGI, PHP, Java Servlet, JavaServer Pages, Active Server Pages, ASP.NET, and Server Application Programming Interface. Variant object. Virtual hosting. Web hosting service. Web container. Web proxy. Web service.


Lightbend Inc.Typesafe Inc.Typesafe
Akka event-driven middleware. Play Framework web framework. Lagom reactive microservices framework. Slick database query and access library for Scala. sbt build tool.

Cross-platform software

Cross-platformPlatform independentmulti-platform
Web applications are becoming increasingly popular but many computer users still use traditional application software which does not rely on a client/web-server architecture. The distinction between traditional and web applications is not always clear. Features, installation methods and architectures for web and traditional applications overlap and blur the distinction. Nevertheless, this simplifying distinction is a common and useful generalization. Traditionally in modern computing, application software has been distributed to end-users as binary file, especially executable files.


IT Mill Toolkit
This is to showcase the developer skills and knowledge about Vaadin Framework and related tools, for successful web application development. To pass the certification you need to go though the whole documentation and have completed a couple of web application using the framework. The exams also tests you knowledge in certain areas of Java SE, Java EE, GWT (Google Web Toolkit) and HTML/JS/CSS. * List of rich Internet application frameworks Duarte, A. (2018) Data-Centric Applications with Vaadin 8. Packt Publishing. Frankel, N. (2013) Learning Vaadin 7, Second Edition. Packt Publishing.Duarte, A. (2013) Vaadin 7 UI Design by Example: Beginner's Guide.


web-based emailweb mailWeb-based e-mail
Webmail (or web-based email) is any email client implemented as a web application running on a web server. Examples of webmail software are Roundcube and SquirrelMail. Examples of webmail providers are AOL Mail, Gmail,, Rackspace Email, Yahoo! Mail and IceWarp Mail Server. Many webmail providers also offer email access by a desktop email client using standard email protocols, while many internet service providers provide a webmail client as part of the email service included in their internet service package.

Application server

web application serverserverJava application server
The application servers mentioned above mainly serve web applications, and services via RMI, EJB, JMS and SOAP. Some application servers target networks other than web-based ones: Session Initiation Protocol servers, for instance, target telephony networks. Microsoft positions their middle-tier applications and services infrastructure in the Windows Server operating system and the .NET Framework technologies in the role of an application server.

Actor model and process calculi

issues with getting messages from multiple channelsmigrationSynchronous channels in process calculi
In computer science, the Actor model and process calculi are two closely related approaches to the modelling of concurrent digital computation. See Actor model and process calculi history. There are many similarities between the two approaches, but also several differences (some philosophical, some technical): The publications on the Actor model and on process calculi have a fair number of cross-references, acknowledgments, and reciprocal citations (see Actor model and process calculi history). Indirect communication using channels (e.g.

Concurrency (computer science)

The Concurrency Representation Theorem in the actor model provides a fairly general way to represent concurrent systems that are closed in the sense that they do not receive communications from outside.

Single-page application

single page applicationsingle-page web applicationsingle-page applications
Migrating Multi-page Web Applications to Single-page Ajax Interfaces (Delft University of Technology). The Single Page Interface Manifesto. Frameworks for Developing Single Page Applications.

Carl Hewitt

Hewitt, Carl
Sussman and Steele developed the Scheme programming language in an effort to gain a better understanding of the actor model. However, their Scheme interpreter was not capable of fully implementing the actor model because actor customers cannot be implemented as lambda calculus continuations and actors can change their local state in a way that is impossible in the lambda calculus A number of programming languages were developed to specifically implement the actor model, such as ACT-1, SALSA, Caltrop, E and ActorScript. The actor model also influenced the development of the π-calculus. (See actor model and process calculi history.) * Scientific community metaphor * Carl Hewitt (1969).