In a Nutshell
YARA is an Architectural Framework to build RESTful and Internet-scale Applications for the Web 2.0.
YARA is not a Web Framework, it's a complete architecture. To fully understand how YARA is differs from traditional Web stacks, it is necessary to explain some of the key concepts below.
Many Web-based business applications derive directly from the "Enterprise Software" segment, where a few hundred/thousand users was considered a "huge" deployment. Internet-scale however, refers to several hundred thousand or even millions of users  .
YARA is a completely different approach because we designed YARA from the Internet, for the Internet and strictly based on the REST architectural style for network-based Hypermedia systems. This makes YARA Internet-scale by design, meaning that given YARA's adherence to strict HTTP standards and truly RESTful architectural style, it simply can't be anything else but Internet-scale.
To give you some real-world perspective, where a typical LAMP (Linux, Apache, MySQL and PHP) server can obtain a throughput of several hundred concurrent sessions, a YARA server obtains a throughput of several thousand per server. Same application, same hardware.
REST is a term coined in the doctoral dissertation of Roy Thomas Fielding in the year 2000 entitled "Architectural Styles and the Design of Network-based Software Architectures", University of California Irvine. In that seminal work, Dr. Fielding (one of the original authors of HTTP) describes the factors that allow the Web to scale so large in the first place, and for the first time ever, the Web architectural style was scientifically and formally defined as "Representational State Transfer", or commonly known as REST.
Although the dissertation was focused and limited to, a "single type of software: network-based hypermedia systems."  , Dr. Fielding goes on to state that "Evaluating the same styles for other types of application software is an open area for future research." YARA is precisely such an application: to apply the REST architectural style to Web-based business application software instead of simple network-based hypermedia systems. This is accomplished by a proprietary method of modeling business application artifacts in the same way as hypermedia resources. YARA resource entities are in fact hypermedia resources. This is one of about 8 key factors that make YARA so scalable.
Distributed Systems, the CAP Theorem and YARA
The CAP Theorem states that no single computer system can simultaneously provide all three of the following guarantees:
- Consistency: All clients see the same data, even with concurrent updates.
- Availability: All database are able to access some version of the data.
- Partition Tolerance: The system can be split over multiple servers.
However a complete architecture such as YARA, combined with the right business modelling and engineering, is able to provide all three aspects, and at very high levels. After all, it's what very large applications and portals such as Google, Facebook, Amazon, and TicketMaster, do every single day, though no one really knows exactly how, and how much actual computer power is behind each one.
Who is YARA for?
YARA is primarily used as an internal tool for building our own Internet-scale products and services. We do, however, license YARA to particularly large Web-based software providers, potentially large start-ups or other interested parties that require an such Internet-scale architecture, ideally before the application is actually developed.
This is because in order to reap the full benefits of YARA, an existing application would probably have to be ported (re-written in whole or in part) using the complete YARA technology stack, methodology and using specialized architectural and modelling engineers from Yabarana Professional Services. However, parts of the YARA stack can be deployed almost immediately over existing applications and still enjoy a great deal of benefits without having to re-write everything.
In fact, with our proprietary modeling techniques and professional services, you can port legacy code gradually to the full YARA stack without risking operational hiccups, and even then, not everything needs to be ported to YARA. For example, it is not mandatory to migrate your existing RDBMS to YARA's default which is PostgreSql, though it is highly recommended for new applications. YARA follows the principle of using the best tool for each job so it's not at all dogmatic about x or y technology as long as it's the correct tool for the job at hand.
The data storage and retrieval layer, largely dominated in the past years by the ubiquitous RDBMS, is a particular problematic area when it comes to Internet-scale. But once our clients fully understand YARA's proprietary agnostic resource storage and retrieval model, having several database or storage and retrieval systems side-by-side will only seem natural, and this holds true at every level, where YARA components can always coexist and cooperate with your current tool-set.
- Substantial Reduction in Hardware
- Increased Availability, Fault and Partition Tolerance
- Virtually Limit-less Scallability
- Web 2.0 Ready
- Simple and secure API: plain, simple and secure HTTP
- Ease of Distribution and Integration
- Cache-safe: YARA loves Caching!
- Ready for the future: IPv6, HTML5, future HTTP, etc.
- Agnostic Resource Storage and Retreival Layer (i.e. undogmatic to RDBMS), for example:
- RDBMS for referential integrity models and transactional data
- Information Retrieval Systems for large textual data
- NoSQL Databases for high-availability slow and/or non-mutable data
- Hierarchical Databases for hierarchical data (e.g. LDAP)
- Native YARA applications use advanced Object-Relational
model and YARA proprietary extensions:
- Real DB Object Inheritance
- Eases Customization of DB Models
- Customizations that Survive Upgrades!
- Encapsulated functionallity in DB Objects
- Data-code factored into DB Objects where it belongs
- Better integration with ORM
YARA is built entirely built with Open Source technology and the greater parts of YARA are fed-back to the communities that maintain the original pieces that make up the bulk of YARA. The architecture itself is used internally and represents a safely guarded trade secret, that has been selectively licensed to a handful of clients.
We support flexible licensing and royalty schemes and partnerships, as well as complete service oriented contracts such as SaaS (your application is built by us and run on our servers). Yabarana can provide complete development, deployment and supports services for your YARA application, or we can train your team in YARA and support at any level from development to deployment and anything in between.