Jump to content

Applet: Difference between revisions

From Wikipedia, the free encyclopedia
Content deleted Content added
link to new article about Äpplet
 
(313 intermediate revisions by more than 100 users not shown)
Line 1: Line 1:
{{short description|Small software application}}
{{mergesection|Widget (computing)|Desktop widgets}}
{{About|small computer apps|the candy|Aplets & Cotlets|the graphing calculator applications|HP 38G|the 17th century ship|Äpplet}}
{{Original research|article|date=June 2009}}
In [[computing]], an '''applet''' is any small [[application (computing)|application]] that performs one specific task that runs within the scope of a dedicated [[widget engine]] or a larger [[program (computing)|program]], often as a [[plug-in (computing)|plug-in]].<ref>[https://web.archive.org/web/20060220131851/http://www.askoxford.com/concise_oed/applet?view=uk "AskOxford: applet"], Oxford Dictionaries. Accessed on July 21, 2009</ref> The term is frequently used to refer to a [[Java applet]], a program written in the [[Java (programming language)|Java]] programming language that is designed to be placed on a [[web page]]. Applets are typical examples of [[Application posture|transient and auxiliary applications]] that do not monopolize the user's attention. Applets are not full-featured application programs, and are intended to be easily accessible.


==History==
An '''applet''' is a software component that runs in the context of another program, for example a [[web browser]]. An applet usually performs a very narrow function that has no independent use. Hence, it is an ''app''lication ''[[-let]]''. The term was introduced in [[AppleScript]] in 1993. An applet is distinguished from "subroutine" by several features. First, it executes only on the "client" platform environment of a system, as contrasted from "[[servlet]]." As such, an applet provides functionality or performance beyond the default capabilities of its container (the browser). Also, in contrast with a subroutine, certain capabilities are restricted by the container. An applet is written in a language that is different from the scripting or [[HTML]] language which invokes it. The applet is written in a compiled language, while the scripting language of the container is an interpreted language, hence, the greater performance or functionality of the applet. Unlike a "subroutine," a complete web component can be implemented as an applet.
The word ''applet'' was first used in 1990 in ''[[PC Magazine]]''.<ref name="Origin">{{cite web
|url=http://www.oed.com
|title=Oxford English Dictionary
|year=2011
|access-date=2011-08-23
}}</ref> However, the concept of an applet, or more broadly a small interpreted program downloaded and executed by the user, dates at least to RFC 5 (1969) by [[Jeff Rulifson]], which described the [[Decode-Encode Language]], which was designed to allow remote use of the [[NLS (computer system)|oN-Line System]] over [[ARPANET]], by downloading small programs to enhance the interaction.<ref>{{citation |title= DEL |first= Jeff |last= Rulifson |work= RFC 5 |date= June 2, 1969 |publisher= Network Working Group }}</ref> This has been specifically credited as a forerunner of Java's downloadable programs in RFC 2555.<ref>{{citation |title= 30 Years of RFCs |author= ((RFC editor, et al.)) |work= RFC 2555 |date= April 7, 1999 |publisher= Network Working Group }}</ref>


==Applet as an extension of other software==
In some cases, an applet does not run independently. These applets must run either in a [[Container (data structure)|container]] provided by a host program, through a [[Plug-in (computing)|plugin]], or a variety of other applications including mobile devices that support the applet programming model.


===Web-based applets===
Applets were used to provide interactive features to web applications that historically could not be provided by [[HTML]] alone. They could capture [[Mouse (computing)|mouse input]] and also had controls like [[Button (computing)|buttons]] or [[check box]]es. In response to the user action, an applet could change the provided graphic content. This made applets well suited for demonstration, visualization, and teaching. There were online applet collections for studying various subjects, from physics to heart physiology. Applets were also used to create online game collections that allowed players to compete against live opponents in real-time.


An applet could also be a text area only, providing, for instance, a cross-platform [[command-line interface]] to some remote system. If needed, an applet could leave the dedicated area and run as a separate [[Window (computing)|window]]. However, applets had very little control over web page content outside the applet dedicated area, so they were less useful for improving the site appearance in general (while applets like [[news ticker]]s or [[WYSIWYG]] editors are also known). Applets could also play media in formats that are not natively supported by the browser.
== Interfaces ==


HTML pages could embed parameters that were passed to the applet. Hence, the same applet could appear differently depending on the parameters that were passed.
Applets usually have some form of [[user interface]] or perform a particular piece of the overall user interface in a web page. This distinguishes them from a program written in a [[scripting programming language]] (such as [[JavaScript]]) that also runs in the context of a larger, client program, but which would not be considered an applet.


Examples of Web-based applets include:{{citation needed|date=August 2012}}
Applets generally have the capability of interacting with and/or influencing their host program, through the restricted security privileges, although they are generally not required to do so.


* [[QuickTime|QuickTime movies]]
== Attributes ==
* [[SWF|Flash movies]]
* [[Windows Media Player]] applets, used to display embedded video files in [[Internet Explorer]] (and other [[Web browser|browsers]] that supported the plugin)
* [[3D modeling]] display applets, used to rotate and zoom a model
* [[Browser game]]s that were applet-based, though some developed into fully functional applications that required installation.


===Applet Vs. Subroutine===
Unlike a [[Computer program|program]], an applet cannot run independently; an applet usually features display and graphics and often interacts with the human user. However, they are usually stateless and have restricted security privileges. The applet must run in a [[container]], which is provided by a host program, through a [[plugin]], or a variety of other applications including mobile devices that support the applet programming model.
A larger application distinguishes its applets through several features:{{Citation needed|date=July 2009}}


* Applets execute only on the "client" platform environment of a system, as contrasted from "[[Java Servlet|Servlet]]". As such, an applet provides functionality or performance beyond the default capabilities of its container (the browser).
== Examples ==
* The container restricts applets' capabilities.
* Applets are written in a language different from the scripting or HTML language that invokes it. The applet is written in a compiled language, whereas the scripting language of the container is an interpreted language, hence the greater performance or functionality of the applet. Unlike a subroutine, a complete web component can be implemented as an applet.


==Java applets==
Common examples of applets are [[Java applet]]s and [[SWF|Flash movies]]. Another example is the [[Windows Media Player]] applet that is used to display embeded video files in [[Internet Explorer]] (and other [[Web browser|browsers]] that support the plugin). Some plugins also allow for displaying various 3D model formats in a web browser, via an applet that allow the view of the model to be rotated and zoomed. Many [[browser game]]s are applet-based, though some may develop into fully functional applications that require installation.
{{Main|Java applet}}


A Java applet is a Java program that is launched from HTML and run in a web browser. It takes code from server and run in a web browser. It can provide web applications with interactive features that cannot be provided by HTML. Since Java's [[bytecode]] is platform-independent, Java applets can be executed by browsers running under many platforms, including [[Microsoft Windows|Windows]], [[Unix]], [[macOS]], and [[Linux]]. When a Java technology-enabled web browser processes a page that contains an applet, the applet's [[code]] is transferred to the client's system and executed by the browser's [[Java virtual machine]].<ref>{{Cite web |date=October 5, 2023 |title=Applets |url=https://www.oracle.com/java/technologies/applets.html |access-date=October 5, 2023 |website=oracle.com}}</ref> An HTML page references an applet either via the [[Deprecation|deprecated]] [[HTML element#applet|{{tag|applet|o}} tag]] or via its replacement, the [[HTML element#object|{{tag|object|o}} tag]].<ref>[https://www.w3schools.com/TAGS/tag_applet.asp "HTML applet tag"], W3Schools. Access on July 21, 2009
== See also ==
</ref>


==Security==
Recent developments in the coding of applications, including mobile and [[embedded system]]s, have led to the awareness of the security of applets.

===Open platform applets===
Applets in an [[open platform]] environment should provide secure interactions between different applications. A compositional approach can be used to provide security for open platform applets.<ref name="Compositional">{{cite book
|chapter=Compositional Verification of Secure Applet Interactions
|last1=Barthe
|first1=Gilles
|title=Fundamental Approaches to Software Engineering
|volume=2306
|pages=15–32
|last2=Gurov
|first2=Dilian
|last3=Huisman
|first3=Marieke
|year=2002
|citeseerx=10.1.1.16.1254
|doi=10.1007/3-540-45923-5_2
|series=Lecture Notes in Computer Science
|isbn=978-3-540-43353-8
}}</ref> Advanced compositional verification methods have been developed for secure applet interactions.<ref name="Compositional"/>

===Java applets===
A [[Java applet]] contains different security models: [[Java applet#Unsigned|unsigned Java applet security]], [[Java applet#Signed|signed Java applet security]], and [[Java applet#Self-signed|self-signed Java applet security]].

===Web-based applets===
In an applet-enabled web browser, many methods can be used to provide applet security for malicious applets. A malicious applet can infect a computer system in many ways, including denial of service, invasion of privacy, and annoyance.<ref name="Controlling">{{cite book
|chapter=Controlling Applets' Behavior in a Browser
|last1=Hassler
|first1=Vesna
|title=Proceedings 14th Annual Computer Security Applications Conference (Cat. No.98EX217)
|pages=120–125
|last2=Then
|first2=Oliver
|year=1998
|doi=10.1109/CSAC.1998.738594
|isbn=978-0-8186-8789-1
|s2cid=17633591
}}</ref> A typical solution for malicious applets is to make the web browser to monitor applets' activities. This will result in a web browser that will enable the manual or automatic stopping of malicious applets.<ref name="Controlling"/>

==See also==
{{Portal|Computer programming}}
* [[Application posture]]
* [[Bookmarklet]]
* [[Java applet]]
* [[Java applet]]
* [[Widget engine]]
* [http://www-math.mit.edu/daimp Some mathematics applets, at MIT]
* [[Abstract Window Toolkit]]


==References==
[[Category:Programming paradigms]]
{{Reflist|30em}}
[[Category:Technology neologisms]]


==External links==
[[da:Applet]]
{{Wiktionary|applet}}
[[de:Applet]]

[[es:Applet]]
[[Category:Technology neologisms]]
[[fr:Applet]]
[[Category:Component-based software engineering]]
[[ko:애플릿]]
[[Category:Java (programming language) libraries]]
[[it:Applet]]
[[he:יישומון]]
[[lv:Sīklietotne]]
[[nl:Applet]]
[[ja:アプレット]]
[[pl:Aplet]]
[[pt:Applet]]
[[ru:Апплет]]
[[sv:Applet]]
[[zh:Applet]]

Latest revision as of 19:23, 13 January 2024

In computing, an applet is any small application that performs one specific task that runs within the scope of a dedicated widget engine or a larger program, often as a plug-in.[1] The term is frequently used to refer to a Java applet, a program written in the Java programming language that is designed to be placed on a web page. Applets are typical examples of transient and auxiliary applications that do not monopolize the user's attention. Applets are not full-featured application programs, and are intended to be easily accessible.

History[edit]

The word applet was first used in 1990 in PC Magazine.[2] However, the concept of an applet, or more broadly a small interpreted program downloaded and executed by the user, dates at least to RFC 5 (1969) by Jeff Rulifson, which described the Decode-Encode Language, which was designed to allow remote use of the oN-Line System over ARPANET, by downloading small programs to enhance the interaction.[3] This has been specifically credited as a forerunner of Java's downloadable programs in RFC 2555.[4]

Applet as an extension of other software[edit]

In some cases, an applet does not run independently. These applets must run either in a container provided by a host program, through a plugin, or a variety of other applications including mobile devices that support the applet programming model.

Web-based applets[edit]

Applets were used to provide interactive features to web applications that historically could not be provided by HTML alone. They could capture mouse input and also had controls like buttons or check boxes. In response to the user action, an applet could change the provided graphic content. This made applets well suited for demonstration, visualization, and teaching. There were online applet collections for studying various subjects, from physics to heart physiology. Applets were also used to create online game collections that allowed players to compete against live opponents in real-time.

An applet could also be a text area only, providing, for instance, a cross-platform command-line interface to some remote system. If needed, an applet could leave the dedicated area and run as a separate window. However, applets had very little control over web page content outside the applet dedicated area, so they were less useful for improving the site appearance in general (while applets like news tickers or WYSIWYG editors are also known). Applets could also play media in formats that are not natively supported by the browser.

HTML pages could embed parameters that were passed to the applet. Hence, the same applet could appear differently depending on the parameters that were passed.

Examples of Web-based applets include:[citation needed]

Applet Vs. Subroutine[edit]

A larger application distinguishes its applets through several features:[citation needed]

  • Applets execute only on the "client" platform environment of a system, as contrasted from "Servlet". As such, an applet provides functionality or performance beyond the default capabilities of its container (the browser).
  • The container restricts applets' capabilities.
  • Applets are written in a language different from the scripting or HTML language that invokes it. The applet is written in a compiled language, whereas the scripting language of the container is an interpreted language, hence the greater performance or functionality of the applet. Unlike a subroutine, a complete web component can be implemented as an applet.

Java applets[edit]

A Java applet is a Java program that is launched from HTML and run in a web browser. It takes code from server and run in a web browser. It can provide web applications with interactive features that cannot be provided by HTML. Since Java's bytecode is platform-independent, Java applets can be executed by browsers running under many platforms, including Windows, Unix, macOS, and Linux. When a Java technology-enabled web browser processes a page that contains an applet, the applet's code is transferred to the client's system and executed by the browser's Java virtual machine.[5] An HTML page references an applet either via the deprecated <applet> tag or via its replacement, the <object> tag.[6]

Security[edit]

Recent developments in the coding of applications, including mobile and embedded systems, have led to the awareness of the security of applets.

Open platform applets[edit]

Applets in an open platform environment should provide secure interactions between different applications. A compositional approach can be used to provide security for open platform applets.[7] Advanced compositional verification methods have been developed for secure applet interactions.[7]

Java applets[edit]

A Java applet contains different security models: unsigned Java applet security, signed Java applet security, and self-signed Java applet security.

Web-based applets[edit]

In an applet-enabled web browser, many methods can be used to provide applet security for malicious applets. A malicious applet can infect a computer system in many ways, including denial of service, invasion of privacy, and annoyance.[8] A typical solution for malicious applets is to make the web browser to monitor applets' activities. This will result in a web browser that will enable the manual or automatic stopping of malicious applets.[8]

See also[edit]

References[edit]

  1. ^ "AskOxford: applet", Oxford Dictionaries. Accessed on July 21, 2009
  2. ^ "Oxford English Dictionary". 2011. Retrieved 2011-08-23.
  3. ^ Rulifson, Jeff (June 2, 1969), "DEL", RFC 5, Network Working Group
  4. ^ RFC editor, et al. (April 7, 1999), "30 Years of RFCs", RFC 2555, Network Working Group
  5. ^ "Applets". oracle.com. October 5, 2023. Retrieved October 5, 2023.
  6. ^ "HTML applet tag", W3Schools. Access on July 21, 2009
  7. ^ a b Barthe, Gilles; Gurov, Dilian; Huisman, Marieke (2002). "Compositional Verification of Secure Applet Interactions". Fundamental Approaches to Software Engineering. Lecture Notes in Computer Science. Vol. 2306. pp. 15–32. CiteSeerX 10.1.1.16.1254. doi:10.1007/3-540-45923-5_2. ISBN 978-3-540-43353-8.
  8. ^ a b Hassler, Vesna; Then, Oliver (1998). "Controlling Applets' Behavior in a Browser". Proceedings 14th Annual Computer Security Applications Conference (Cat. No.98EX217). pp. 120–125. doi:10.1109/CSAC.1998.738594. ISBN 978-0-8186-8789-1. S2CID 17633591.

External links[edit]