blob: b902cc8acaba8d006b83ab942123951824471f4a [file] [log] [blame]
<!--
Licensed to the Apache Software Foundation (ASF) under one
or more contributor license agreements. See the NOTICE file
distributed with this work for additional information
regarding copyright ownership. The ASF licenses this file
to you under the Apache License, Version 2.0 (the
"License"); you may not use this file except in compliance
with the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing,
software distributed under the License is distributed on an
"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
KIND, either express or implied. See the License for the
specific language governing permissions and limitations
under the License.
-->
<!DOCTYPE html>
<html lang="en">
<head>
<!-- Required meta tags -->
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
<script type="text/javascript">
if(window.location.protocol != 'https:') {
location.href = location.href.replace("http://", "https://");
}
</script>
<title>Apache Wayang - About</title>
<link rel="icon" href="https://wayang.apache.org/assets/img/logo/favicon-pluma.ico">
<!-- Bootstrap CSS -->
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@4.6.0/dist/css/bootstrap.min.css" integrity="sha384-B0vP5xmATw1+K9KRQjQERJvTumQW0nPEzvF6L/Z6nronJ3oUOFUFpCjEUQouq2+l" crossorigin="anonymous">
<link rel="stylesheet" href="https://wayang.apache.org/assets/css/color.css">
<link rel="stylesheet" href="https://pro.fontawesome.com/releases/v5.10.0/css/all.css" integrity="sha384-AYmEC3Yw5cVb3ZcuHtOA93w35dYTsvhLPVnYs9eStHfGJvOvKxVfELGroGkvsg+p" crossorigin="anonymous"/>
<link rel="stylesheet" href="https://wayang.apache.org/assets/css/monokai.css">
<link rel="stylesheet" href="https://wayang.apache.org/assets/css/home.css">
</head>
<body>
<nav class="navbar navbar-expand-lg navbar-light bg-light sticky-top shadow-lg">
<div class="container d-flex justify-content-between w-100">
<div class="mr-auto p-2 w-100">
<div class="d-flex">
<a class="navbar-brand mr-auto" href="/">
<img style="max-height: 75px" src="https://wayang.apache.org/assets/img/logo/logo_400x160.png"/>
</a>
<button class="navbar-toggler ml-auto align-self-center" type="button" data-toggle="collapse" data-target="#navbarSupportedContent" aria-controls="navbarSupportedContent" aria-expanded="false" aria-label="Toggle navigation">
<span class="navbar-toggler-icon"></span>
</button>
</div>
</div>
<div>
<div class="p-2 collapse navbar-collapse" id="navbarSupportedContent">
<div class="navbar-nav">
<li class="nav-item ">
<a class="nav-link" href="https://wayang.apache.org/">
Home
</a>
</li>
<li class="nav-item ">
<a class="nav-link" href="https://wayang.apache.org/about">
About
</a>
</li>
<li class="nav-item ">
<a class="nav-link" href="https://wayang.apache.org/community">
Community
</a>
</li>
<li class="nav-item ">
<a class="nav-link" href="https://wayang.apache.org/download">
Download
</a>
</li>
<li class="nav-item ">
<a class="nav-link" href="https://wayang.apache.org/documentation">
Documentation
</a>
</li>
<li class="nav-item ">
<a class="nav-link" href="https://wayang.apache.org/publications-home">
Publications
</a>
</li>
<li class="nav-item dropdown ">
<a class="nav-link dropdown-toggle" data-toggle="dropdown" href="#" role="button" aria-haspopup="true" aria-expanded="false">
Apache
</a>
<div class="dropdown-menu">
<a class="dropdown-item" href="https://www.apache.org/foundation/how-it-works.html">
Apache Software Foundation
</a>
<a class="dropdown-item" href="https://www.apache.org/licenses/">
License
</a>
<a class="dropdown-item" href="https://www.apache.org/events/current-event">
Events
</a>
<a class="dropdown-item" href="https://www.apache.org/security/">
Security
</a>
<a class="dropdown-item" href="https://www.apache.org/foundation/sponsorship.html">
Sponsorship
</a>
<a class="dropdown-item" href="https://www.apache.org/foundation/thanks.html">
Thanks
</a>
</div>
</li>
</div>
</div>
</div>
</div>
</div>
</nav>
<div class="container-fluid p-0">
<div class="title-post mb-3 mt-n5 d-flex align-items-center shadow" >
<div class="col pt-4" style="text-align: center">
<h1 class="mb-n2 mt-1" style="color: white; font-size: 4em">About</h1>
</div>
</div>
<section>
<div class="container">
<div class="row" style="margin-top: 15px;">
<div class="col-md-12 col-sm-12">
<div style="text-align: justify">
<p>Apache Wayang has a three-layer data processing abstraction that sits between user applications and data processing platforms, such as Hadoop and Spark. The figure below depicts the Apache Wayang architecture: (i) an application layer that models all application-specific logic; (ii) a core layer that provides the intermediate representation between applications and processing platforms; and (iii) a platform layer that embraces the underlying processing platforms. Overall, the input of an application layer comprises the logical operators provided by users (or generated by a declarative query parser) and the output is a physical plan (WayangPlan). The WayangPlan is then passed to the core layer where cross-platform optimizations take place to produce an execution plan (ExecutionPlan).<br /><br /> Notice that, in contrast to DBMSs, Apache Wayang decouples physical and execution levels. This separation allows applications to express physical plans in terms of algorithmic needs only, without being tied to a particular processing platform. The salient features of Apache Wayang are cross-platform task execution, high-performance, flexibility, and ease-of-use.</p>
</div>
</div>
</div>
</div>
</section>
<section>
<div class="container">
<div class="row">
<div class="col-md-6 col-sm-12 text-center ">
<img src="https://wayang.apache.org/assets/img/architecture.png" style="width: 100%;"/>
<br>
<em>Architecture of Apache Wayang</em>
</div>
<div class="col-md-6 col-sm-12 text-center ">
<img src="https://wayang.apache.org/assets/img/plan.png" style="width: 100%;"/>
<br>
<em>SGD plans</em>
</div>
</div>
</div>
</section>
<div class="subtitle-post d-flex align-items-center mt-5 shadow" >
<div class="col" style="text-align: center">
<h1 style="color: white; font-size: 4em">Features</h1>
</div>
</div>
<section id="feature_about" class="container-fluid">
<div class="row">
<div class="container">
<div class="row d-flex flex-nowrap">
<div class="col-sm-12 col-md-3 col-md-push-9 text-center align-self-center p-2 order-2">
<div class="service-item">
<i class="fas fa-bezier-curve fa-5x"></i>
<h4>Cross platform enablement</h4>
<strong>
Run data analytics tasks on top of any set of data processing platforms.
</strong>
</div>
</div>
<div class="col-sm-12 col-md-9 col-md-pull-3 align-self-center p-2 order-1">
<p class="text-justify">
The most salient feature of Apache Wayang is its cross platform optimizer. Besides deciding the best processing platform to run any incoming task, Apache Wayang can run a single task on multiple processing platforms. Overall, it applies an extensible set of graph transformations to the Apache Wayang plan to find alternative better execution plans. After it compares all execution plans by using a platform-specific cost model. Cost functions can either be given or learned, and are parameterized with respect to the underlying hardware (e.g., number of computing nodes for distributed operators).
</p>
</div>
</div>
</div>
</div>
<div class="row">
<div class="container">
<div class="row d-flex flex-nowrap">
<div class="col-sm-12 col-md-3 col-md-push-9 text-center align-self-center p-2 order-1">
<div class="service-item">
<i class="fa fa-clock fa-5x"></i>
<h4>High Efficiency</h4>
<strong>
Apache Wayang selects the best available data processing platform for any incoming query.
</strong>
</div>
</div>
<div class="col-sm-12 col-md-9 col-md-pull-3 align-self-center p-2 order-2">
<p class="text-justify">
Apache Wayang provides a number of optimized operators and novel query optimization processes that allows to efficiently deal with big (as well as small) datasets. Furthermore, as the data processing abstraction is based on UDFs, Apache Wayang lets applications expose semantic properties about their functions, optimization hints (e.g., numbers of iterations), constraints (e.g., physical collocation of operators), and alternative plans. The optimizer then uses those artifacts where available in a best-effort approach.
</p>
</div>
</div>
</div>
</div>
<div class="row">
<div class="container">
<div class="row d-flex flex-nowrap">
<div class="col-sm-12 col-md-3 col-md-push-9 text-center align-self-center p-2 order-2">
<div class="service-item">
<i class="fa fa-puzzle-piece fa-5x"></i>
<h4>Flexibility</h4>
<strong>
User defined functions (UDFs) as first-class citizens, enabling extensibility and adaptability.
</strong>
</div>
</div>
<div class="col-sm-12 col-md-9 col-md-pull-3 align-self-center p-2 order-1">
<p class="text-justify">
Apache Wayang provides a set of operators, which applications use to specify their tasks. The key aspect of Apache Wayang is the providing of a flexible operator mapping structure; allowing developers to add, modify, or delete mappings among Wayang and execution operators. As a result, developers can also add or remove Wayang and execution operators.
</p>
</div>
</div>
</div>
</div>
<div class="row">
<div class="container">
<div class="row d-flex flex-nowrap">
<div class="col-sm-12 col-md-3 col-md-push-9 text-center align-self-center p-2 order-1">
<div class="service-item">
<i class="fas fa-child fa-5x"></i>
<h4>Easy to use</h4>
<strong>
Apache Wayang provides a simple interface to enable developers to focus on the logics of their applications.
</strong>
</div>
</div>
<div class="col-sm-12 col-md-9 col-md-pull-3 align-self-center p-2 order-2">
<p class="text-justify">
Apache Wayang exposes a simple Java API to developers whereby they can implement their tasks. Developers focus on the logics of their tasks rather than on low-level details specific to data processing platforms. The figure of the SGD plans above shows the Wayang plan for a scalable gradient descent implementation: we clearly see that this tedious implementation task is now much easier!
</p>
</div>
</div>
</div>
</div>
<div class="row">
<div class="container">
<div class="row d-flex flex-nowrap">
<div class="col-sm-12 col-md-3 col-md-push-9 text-center align-self-center p-2 order-2">
<div class="service-item">
<i class="fa fa-piggy-bank fa-5x"></i>
<h4>Cost Saving</h4>
<strong>
Fast development of data analytics applications, reduces sunken costs and enables innovation
</strong>
</div>
</div>
<div class="col-sm-12 col-md-9 col-md-pull-3 align-self-center p-2 order-1">
<p class="text-justify">
Users do not have to know the intricacies of the underlying platforms: they focus on the logic of their application only. This not only speeds up the development of applications, but also it is no longer a "must have" to be an expert in big data infrastructures. Apache Wayang takes care of how and on which data processing platforms fits best for the given tasks to deploy applications.
</p>
</div>
</div>
</div>
</div>
<div class="row">
<div class="container">
<div class="row d-flex flex-nowrap">
<div class="col-sm-12 col-md-3 col-md-push-9 text-center align-self-center p-2 order-1">
<div class="service-item">
<i class="fa fa-code-branch fa-5x"></i>
<h4>Open Source</h4>
<strong>
All code is on GitHub under Apache Software License 2.0.
</strong>
</div>
</div>
<div class="col-sm-12 col-md-9 col-md-pull-3 align-self-center p-2 order-2">
<p class="text-justify">
Apache Wayang has been open source from its very beginnings and will keep being open source until its very endings. Feel free to download, try, and contribute to the project. Help us to make Apache Wayang even better!
</p>
</div>
</div>
</div>
</div>
</section>
</div>
<footer class="footer position-sticky sticky-bottom">
<nav class="navbar navbar-light bg-light" style="background: #A6A6A6;">
<div class="container">
<div class="row">
<div class="col text-center">
<a href="http://incubator.apache.org/" >
<img style="max-height: 15vw" src="https://wayang.apache.org/assets/img/egg-logo.png">
</a>
<br />
<p style="text-align: justify">
Apache Wayang is an effort undergoing Incubation at The Apache Software Foundation (ASF), sponsored by the Incubator. Incubation is required of all newly accepted projects until a further review indicates that the infrastructure, communications, and decision making process have stabilized in a manner consistent with other successful ASF projects. While incubation status is not necessarily a reflection of the completeness or stability of the code, it does indicate that the project has yet to be fully endorsed by the ASF.
</p>
<p class="text-center">
Copyright &#169; 2022 The Apache Software Foundation.<br />
Licensed under the Apache License, Version 2.0.<br />
Apache, the Apache Feather logo, and the Apache Incubator project logo are trademarks of The Apache Software Foundation.
</p>
</div>
</div>
<div class="row justify-content-md-center w-100">
<div class="col-md-3">
<a class="btn btn-link w-100" href="https://incubator.apache.org">
Apache Incubator
</a>
</div>
<div class="col-md-3">
<a class="btn btn-link w-100" href="https://www.apache.org">
About ASF
</a>
</div>
<div class="col-md-3">
<a class="btn btn-link w-100" href="https://www.apache.org/licenses/">
License
</a>
</div>
<div class="col-md-3">
<a class="btn btn-link w-100" href="https://www.apache.org/events/current-event">
Events
</a>
</div>
<div class="col-md-3">
<a class="btn btn-link w-100" href="https://www.apache.org/security/">
Security
</a>
</div>
<div class="col-md-3">
<a class="btn btn-link w-100" href="https://www.apache.org/foundation/sponsorship.html">
Sponsorship
</a>
</div>
<div class="col-md-3">
<a class="btn btn-link w-100" href="https://www.apache.org/foundation/thanks.html">
Thanks
</a>
</div>
</div>
</div>
</nav>
</footer>
<script src="https://code.jquery.com/jquery-3.5.1.slim.min.js" integrity="sha384-DfXdz2htPH0lsSSs5nCTpuj/zy4C+OGpamoFVy38MVBnE+IbbVYUew+OrCXaRkfj" crossorigin="anonymous"></script>
<script src="https://cdn.jsdelivr.net/npm/bootstrap@4.6.0/dist/js/bootstrap.bundle.min.js" integrity="sha384-Piv4xVNRyMGpqkS2by6br4gNJ7DXjqk09RmUpJ8jgGtD7zP9yug3goQfGII0yAns" crossorigin="anonymous"></script>
<script src="https://wayang.apache.org/assets/js/add_numbers.js"></script>
</body>
</html>