In computing, a web application or web app is a client–server software application in which the client runs in a web browser. Common web applications include webmail, online sales, online auctions, instant messaging services. The general distinction between a dynamic web page of any kind and a web application is unclear, Web sites most likely to be referred to as web applications are those which have similar functionality to a desktop software application, or to a mobile app. HTML5 introduced explicit language support for making applications that are loaded as web pages, single-page applications are more application-like because they reject the more typical web paradigm of moving between distinct pages with different URLs. Single-page frameworks like Sencha Touch and AngularJS might be used to speed development of such a web app for a mobile platform, frameworks like React Native and Xamarin allow the development of native apps for all platforms using languages other than each standard native language.
These have significant importance in creating truly platform and browser independent rich web applications, many services have worked to combine all of these into a more familiar interface that adopts the appearance of an operating system
In computing, Extensible Markup Language is a markup language that defines a set of rules for encoding documents in a format that is both human-readable and machine-readable. The W3Cs XML1.0 Specification and several other related specifications—all of them free open standards—define XML, the design goals of XML emphasize simplicity and usability across the Internet. It is a data format with strong support via Unicode for different human languages. Although the design of XML focuses on documents, the language is used for the representation of arbitrary data structures such as those used in web services. Several schema systems exist to aid in the definition of XML-based languages, hundreds of document formats using XML syntax have been developed, including RSS, Atom, SOAP, SVG, and XHTML. XML-based formats have become the default for many office-productivity tools, including Microsoft Office, OpenOffice. org and LibreOffice, XML has provided the base language for communication protocols such as XMPP.
Applications for the Microsoft. NET Framework use XML files for configuration, apple has an implementation of a registry based on XML. XML has come into use for the interchange of data over the Internet. IETF RFC7303 gives rules for the construction of Internet Media Types for use when sending XML and it defines the media types application/xml and text/xml, which say only that the data is in XML, and nothing about its semantics. The use of text/xml has been criticized as a source of encoding problems. RFC7303 recommends that XML-based languages be given media types ending in +xml, further guidelines for the use of XML in a networked context appear in RFC3470, known as IETF BCP70, a document covering many aspects of designing and deploying an XML-based language. The material in this section is based on the XML Specification and this is not an exhaustive list of all the constructs that appear in XML, it provides an introduction to the key constructs most often encountered in day-to-day use. Character An XML document is a string of characters, almost every legal Unicode character may appear in an XML document.
Processor and application The processor analyzes the markup and passes structured information to an application, the specification places requirements on what an XML processor must do and not do, but the application is outside its scope. The processor is often referred to colloquially as an XML parser and content The characters making up an XML document are divided into markup and content, which may be distinguished by the application of simple syntactic rules. Generally, strings that constitute markup either begin with the character < and end with a >, or they begin with the character &, strings of characters that are not markup are content. However, in a CDATA section, the delimiters <. > are classified as markup, in addition, whitespace before and after the outermost element is classified as markup. Tag A tag is a construct that begins with <
A Java servlet is a Java program that extends the capabilities of a server. Although servlets can respond to any types of requests, they most commonly implement applications hosted on Web servers, such Web servlets are the Java counterpart to other dynamic Web content technologies such as PHP and ASP. NET. Servlets are most often used to process or store a Java class in Java EE that conforms to the Java Servlet API, servlets could in principle communicate over any client–server protocol, but they are most often used with the HTTP protocol. Thus servlet is often used as shorthand for HTTP servlet, thus, a software developer may use a servlet to add dynamic content to a web server using the Java platform. The generated content is commonly HTML, but may be other such as XML. Servlets can maintain state in session variables across many server transactions by using HTTP cookies, to deploy and run a servlet, a web container must be used. A web container is essentially the component of a web server that interacts with the servlets, the web container is responsible for managing the lifecycle of servlets, mapping a URL to a particular servlet and ensuring that the URL requester has the correct access rights.
The Servlet API, contained in the Java package hierarchy javax. servlet, defines the interactions of the web container. A Servlet is an object receives a request and generates a response based on that request. The basic Servlet package defines Java objects to represent servlet requests and responses, as well as objects to reflect the servlets configuration parameters, servlets may be packaged in a WAR file as a web application. Servlets can be generated automatically from JavaServer Pages by the JavaServer Pages compiler, the difference between servlets and JSP is that servlets typically embed HTML inside Java code, while JSPs embed Java code in HTML. A somewhat older usage is to use servlets in conjunction with JSPs in a pattern called Model 2, the current version of Servlet is 3.1. The Servlet1 specification was created by Pavni Diwanji while she worked at Sun Microsystems, starting with version 2.3, the specification was developed under the Java Community Process. JSR53 defined both the Servlet 2.3 and JavaServer Page 1.2 specifications, JSR154 specifies the Servlet 2.4 and 2.5 specifications.
As of June 9,2015, the current version of the Servlet specification is 3.1, in his blog on java. net, Sun veteran and GlassFish lead Jim Driscoll details the history of servlet technology. James Gosling first thought of servlets in the days of Java. This was before what is now the Java Platform, Enterprise Edition was made into a specification, the advantages of using servlets are their fast performance and ease of use combined with more power over traditional CGI. Traditional CGI scripts written in Java have a number of disadvantages, When an HTTP request is made
Application performance management
In the fields of information technology and systems management, application performance management is the monitoring and management of performance and availability of software applications. APM strives to detect and diagnose complex application performance problems to maintain a level of service. APM is the translation of IT metrics into business meaning, two sets of performance metrics are closely monitored. The first set of performance metrics defines the performance experienced by end users of the application, one example of performance is average response times under peak load. The components of the set include load and response times, the load is the volume of transactions processed by the application, e. g. transactions per second, requests per second, pages per second. The response times are the times required for an application to respond to a users actions at such a load, measurement of these quantities establishes an empirical performance baseline for the application. The baseline can be used to detect changes in performance, changes in performance can be correlated with external events and subsequently used to predict future changes in application performance.
The use of APM is common for Web applications, which lends itself best to the more detailed monitoring techniques, in addition to measuring response time for a user, response times for components of a Web application can be monitored to help pinpoint causes of delay. There exist HTTP appliances that can decode transaction-specific response times at the Web server layer of the application, since the first half of 2013, APM has entered into a period of intense competition of technology and strategy with a multiplicity of vendors and viewpoints. This has caused an upheaval in the marketplace with vendors from unrelated backgrounds adopting messaging around APM, as a result, the term APM has become diluted and has evolved into a concept for managing application performance across many diverse computing platforms, rather than a single market. To alleviate the first problem application service management provides an application-centric approach, each function is now likely to have been designed as an Internet service that runs on multiple virtualized systems.
The applications themselves are likely to be moving from one system to another to meet service-level objectives. The APM Conceptual Framework was designed to help prioritize an approach on what to focus on first for a quick implementation, the framework slide outlines three areas of focus for each dimension and describes their potential benefits. These areas are referenced as Primary below, with the lower priority dimensions referenced as Secondary, measuring the transit of traffic from user request to data and back again is part of capturing the end-user-experience. The outcome of this measuring is referred to as Real-time Application monitoring, passive monitoring is usually an agentless appliance implemented using network port mirroring. A key feature to consider in this solution is the ability to support multiple protocol analytics since most companies have more than just web-based applications to support, active monitoring, on the other hand, consists of synthetic probes and web robots predefined to report system availability and business transactions.
Active monitoring is a complement to passive monitoring, together. User experience management is a subcategory that emerged from the EUE dimension to monitor the behavioral context of the user, UEM, as practiced today, goes beyond availability to capture latencies and inconsistencies as human beings interact with applications and other services
JavaServer Pages is a technology that helps software developers create dynamically generated web pages based on HTML, XML, or other document types. Released in 1999 by Sun Microsystems, JSP is similar to PHP, ASP and Reacts JSX, to deploy and run JavaServer Pages, a compatible web server with a servlet container, such as Apache Tomcat or Jetty, is required. Architecturally, JSP may be viewed as an abstraction of Java servlets. JSPs are translated into servlets at runtime, therefore JSP is a Servlet, JSP can be used independently or as the view component of a server-side model–view–controller design, normally with JavaBeans as the model and Java servlets as the controller. This is a type of Model 2 architecture, the compiled pages, as well as any dependent Java libraries, contain Java bytecode rather than machine code. Like any other Java program, they must be executed within a Java virtual machine that interacts with the servers host operating system to provide an abstract, platform-neutral environment.
JSPs are usually used to deliver HTML and XML documents, but through the use of OutputStream, the Web container creates JSP implicit objects like request, session, config, pageContext and exception. JSP Engine creates these objects during translation phase, JSP pages use several delimiters for scripting functions. %>, which encloses a JSP scriptlet, a scriptlet is a fragment of Java code that is run when the user requests the page. %> for expressions, where the scriptlet and delimiters are replaced with the result of evaluating the expression, Java code is not required to be complete or self-contained within a single scriptlet block. It can straddle markup content, provided that the page as a whole is syntactically correct, for example, any Java if/for/while blocks opened in one scriptlet must be correctly closed in a scriptlet for the page to successfully compile. Content that falls inside a block of Java code is subject to that code. Content inside an if block will appear in the output when the if condition evaluates to true.
Likewise, content inside a loop construct may appear multiple times in the output, the following would be a valid for loop in a JSP page, The output displayed in the users web browser would be, Counting to three, This number is 1. Version 2.0 of the JSP specification added support for the Expression Language, used to access data, in JSP2.1, it was folded into the Unified Expression Language, which is used in JavaServer Faces. An example of EL Syntax, The value of variable in the object javabean is $, the JSP syntax add additional tags, called JSP actions, to invoke built-in functionality. Additionally, the technology allows for the creation of custom JSP tag libraries that act as extensions to the standard JSP syntax, some JSP containers support configuring how often the container checks JSP file timestamps to see whether the page has changed. Typically, this timestamp would be set to an interval during software development
Java Management Extensions
Java Management Extensions is a Java technology that supplies tools for managing and monitoring applications, system objects and service-oriented networks. Those resources are represented by objects called MBeans, in the API, classes can be dynamically loaded and instantiated. Managing and monitoring applications can be designed and developed using the Java Dynamic Management Kit, JSR003 of the Java Community Process defined JMX1.0,1.1 and 1.2. JMX2.0 was being developed under JSR255, the JMX Remote API1.0 for remote management and monitoring is specified by JSR160. An extension of the JMX Remote API for Web Services is being developed under JSR262, adopted early on by the J2EE community, JMX has been a part of J2SE since version 5.0. JMX is a trademark of Oracle Corporation, JMX uses a three-level architecture, The Probe level - called the Instrumentation level - contains the probes instrumenting the resources The Agent level, or MBeanServer - the core of JMX. It acts as an intermediary between the MBean and the applications, the Remote Management level enables remote applications to access the MBeanServer through connectors and adaptors.
A connector provides full access to the MBeanServer API using various communication. Applications can be generic consoles or domain-specific applications, external applications can interact with the MBeans through the use of JMX connectors and protocol adapters. Connectors serve to connect an agent with a remote JMX-enabled management application and this form of communication involves a connector in the JMX agent and a connector client in the management application. Protocol adapters provide a management view of the JMX agent through a given protocol, Management applications that connect to a protocol adapter are usually specific to the given protocol. A managed bean - sometimes simply referred to as an MBean - is a type of JavaBean, managed Beans are particularly used in the Java Management Extensions technology - but with Java EE6 the specification provides for a more detailed meaning of a managed bean. The MBean represents a resource running in the Java virtual machine, Java EE6 provides that a managed bean is a bean that is implemented by a Java class, which is called its bean class.
It is a class, or is annotated @Decorator. It is not annotated with an EJB component-defining annotation or declared as an EJB bean class in ejb-jar. xml, no special declaration, such as an annotation, is required to define a managed bean. An MBean can notify the MBeanServer of its changes by implementing the javax. management. NotificationEmitter. The application interested in the MBeans changes registers a listener to the MBeanServer, note that JMX does not guarantee that the listeners will receive all notifications. There are two types of MBean, Standard MBeans implement a business interface containing setters and getters for the attributes
A web service is a service offered by an electronic device to another electronic device, communicating with each other via the World Wide Web. Another common application offered to the end user may be a mashup, where a web server consumes several web services at different machines, the W3C defines a web service generally as, A web service is a software system designed to support interoperable machine-to-machine interaction over a network. Web services may use SOAP over HTTP protocol, allowing less costly interactions over the Internet than via proprietary solutions like EDI/B2B, besides SOAP over HTTP, web services can be implemented on other reliable transport mechanisms like FTP. In a 2002 document, the W3C Web Services Architecture Working Group defined a Web Services Architecture, in this, It has an interface described in a machine-processable format. The term web service describes a way of integrating web-based applications using the XML, SOAP, WSDL. A web service is a method of communication between two electronic devices over a network and it is a software function provided at a network address over the web with the service always on as in the concept of utility computing.
Many organizations use multiple systems for management. Different software systems often need to exchange data with other. The software system that requests data is called a service requester, whereas the system that would process the request. Different software may use different programming languages, and hence there is a need for a method of exchange that doesnt depend upon a particular programming language. Most types of software can, interpret XML tags, web services can use XML files for data exchange. Rules for communication between different systems need to be defined, such as, How one system can request data from another system, which specific parameters are needed in the data request. What would be the structure of the data produced, what error messages to display when a certain rule for communication is not observed, to make troubleshooting easier. All of these rules for communication are defined in a file called WSDL, a directory called UDDI defines which software system should be contacted for which type of data.
So when one software system needs one particular report/data, it would go to the UDDI, once the software system finds out which other system it should contact, it would contact that system using a special protocol called SOAP. The service provider system would first validate the data request by referring to the WSDL file, a Web API is a development in web services where emphasis has been moving to simpler representational state transfer based communications. RESTful APIs do not require XML-based web service protocols to support their interfaces, Automated tools can aid in the creation of a web service. For services using WSDL, it is possible to automatically generate WSDL for existing classes or to generate a class skeleton given existing WSDL
Distributed computing is a field of computer science that studies distributed systems. A distributed system is a model in which components located on networked computers communicate and coordinate their actions by passing messages, the components interact with each other in order to achieve a common goal. Three significant characteristics of distributed systems are, concurrency of components, lack of a global clock, examples of distributed systems vary from SOA-based systems to massively multiplayer online games to peer-to-peer applications. A computer program that runs in a system is called a distributed program. There are many alternatives for the message passing mechanism, including pure HTTP, RPC-like connectors, Distributed computing refers to the use of distributed systems to solve computational problems. In distributed computing, a problem is divided into many tasks, each of which is solved by one or more computers, which communicate with each other by message passing. The terms are used in a much wider sense, even referring to autonomous processes that run on the same physical computer.
The entities communicate with each other by message passing, a distributed system may have a common goal, such as solving a large computational problem, the user perceives the collection of autonomous processors as a unit. Other typical properties of distributed systems include the following, The system has to tolerate failures in individual computers. The structure of the system is not known in advance, the system may consist of different kinds of computers and network links, each computer has only a limited, incomplete view of the system. Each computer may know one part of the input. Distributed systems are groups of networked computers, which have the goal for their work. The terms concurrent computing, parallel computing, and distributed computing have a lot of overlap, the same system may be characterized both as parallel and distributed, the processors in a typical distributed system run concurrently in parallel. Parallel computing may be seen as a tightly coupled form of distributed computing.
In distributed computing, each processor has its own private memory, Information is exchanged by passing messages between the processors. The figure on the right illustrates the difference between distributed and parallel systems, figure shows a parallel system in which each processor has a direct access to a shared memory. The situation is complicated by the traditional uses of the terms parallel and distributed algorithm that do not quite match the above definitions of parallel. The use of concurrent processes that communicate by message-passing has its roots in operating system architectures studied in the 1960s, the first widespread distributed systems were local-area networks such as Ethernet, which was invented in the 1970s