Permalink
Fetching contributors…
Cannot retrieve contributors at this time
141 lines (130 sloc) 4.98 KB
---
# Copyright 2017 Yahoo Holdings. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
title: "Java Data Intensive Serving Container - JDisc"
---
<p>
Vespa's Java container JDisc is optimized for a quick and easy dev-to-prod cycle, and for writing
code which processes large amounts of incoming and outgoing data.
It is fully integrated with the Cloud Config System,
allowing for live reconfiguration without service interruption.
The container exposes a servlet-like API for query processing
that allows building RESTful web-services,
and a storm-like API to do document processing.
It exposes APIs for simple and performant federation across heterogeneous data sources.
</p>
<p>
The <a href="../container-intro.html">Vespa container</a> is the home of all application specific code in Vespa.
Vespa's request processing lifecycle is explained in further detail in the <a href="how-does-jdisc-work.html">request processing overview</a>.
</p>
<h2>Sample Applications</h2>
<ul>
<li>Implement "Hello, World!" using the
<a href="developing-applications.html">application development</a> tutorial
</li><li>
<a href="http-api-tutorial.html">Building an HTTP API using request handlers and processors</a>.
</li><li>
<a href="../handler-tutorial.html">Building an HTTP API using searchers</a>
</li>
</ul>
</p>
<h2>Develop Components</h2>
<ul>
<li>
The JDisc container provides a framework for processing requests and responses,
named <em>Processing</em> - its building blocks are:
<ul>
<li>
<a href="../chained-components.html">Chains</a>
of other components that are to be executed serially,
with each providing some service or transform
</li>
<li>
<a href="processing.html">Processors</a>
that change the request and / or the response. They may also
make multiple forward requests, in series or parallel,
or manufacture the response content themselves
</li>
<li>
<a href="processing.html#response-rendering">Renderers</a>
that are used to serialize a Processor's response before
returning it to a client
</li>
</ul>
</li>
<li>
Application Lifecycle and unit testing:
<ul>
<li>
<a href="../configuring-components.html">Configuring components</a>
with custom configuration
</li><li>
<a href="injecting-components.html">Component injection</a> allows components
to access other application components
</li><li>
Learn how to <a href="developing-osgi-bundles.html">build OSGi bundles</a> and
how to <a href="osgi-classloading.html">troubleshoot</a> classloading issues
</li><li>
<a href="jax.html">XML processing</a> with JAXB and JAXP (DOM, SAX, StAX)
</li><li>
Using <a href="pluggable-frameworks.html">Libraries for Pluggable Frameworks</a> from
a component may result in class loading issues that require extra setup in the application
</li>
<li>
<a href="testing-configurable-components.html">Unit testing configurable components</a>
</li>
</ul>
</li>
<li>
Handlers and filters:
<ul>
<li>
<a href="http-server-and-filters.html">Http servers and
security filters</a> for incoming connections on HTTP and HTTPS
</li><li>
<a href="developing-request-handlers.html">Request handlers</a>
to process incoming requests and generate responses
</li>
</ul>
</li>
<li>
Searchers and Document Processors:
<ul>
<li><a href="../searcher-development.html">Searcher</a> and
<a href="../result-rendering.html">search result renderer</a>
development
</li><li><a href="../document-processing-overview.html">Document processing</a>,
<a href="../docproc-development.html">development</a>
</li>
</ul>
</li>
</ul>
<h2>Reference</h2>
<ul>
<li><a href="../reference/services-container.html">services.xml</a></li>
<li><a href="metrics.html">Metrics</a></li>
</ul>
<h2>Appendices</h2>
<ul>
<li>
<a href="component-versioning.html">Versioning Components</a>
</li><li>
<a href="developing-client-providers.html">Client providers</a>
are capable of connecting to and forwarding requests to a
remote server on a specific protocol, e.g. the <code>HttpClient</code>
is a client provider for HTTP and HTTPS
</li><li>
To accept incoming connection on other protocols than HTTP/HTTPS,
develop custom <a href="developing-server-providers.html">server providers</a>
starting with the <a href="server-tutorial.html">tutorial</a>
</li><li>
<a href="chain-builder.html">The Chain Builder API</a>
</li><li>
<a href="../developing-web-services.html">Designing RESTful web
services</a> as Vespa Components
</li><li>
<a href="vip.html">Using the Container with a VIP</a>
</li><li>
<a href="../component-types.html">Vespa Component types</a>
<!-- ToDo merge with how-does-jdisc-work.html -->
</li>
</ul>