eBay Tech Blog

eBay Open Sourced its SOA platform!

by Sastry Malladi on 02/17/2011

in Software Engineering

Last month, eBay released its open source site, http://www.eBayOpenSource.org, with a mission to open source some of the best of breed technologies developed within eBay Inc. to the community. The first open sourced project, code named Turmeric, is a comprehensive SOA platform for scalable development, deployment, management and monitoring of services.
Turmeric is being released under the Apache License (a copy is available here).
As with any first public release of an existing internal code base you may encounter some rough edges. If that happens, please help us make the project better by filing an issue or posting to a discussion forum!

What is Turmeric?

Turmeric is a comprehensive, policy-driven SOA platform that you can use to develop, deploy, secure, run and monitor SOA services and consumers. It is a Java based platform, follows the standards (SOAP, XML, JSON, XACML, etc.), and supports WSDL (SOAP style – Doc Lit wrapped mode) and REST styles. It supports a variety of protocols and data formats. Eclipse plugins help with the development of services and consumers. Other important features include:

  • Quality of Service (QoS) features such as authentication, authorization, and rate limiting, which are controlled by defining respective policies
  • Monitoring capabilities
  • Type Library feature provides the ability to define and manage reusable schema type definitions across services, and hierarchically organizes them
  • Error Library capability that lets you define and re-use error definitions across services
  • Local binding lets you locally bind services to consumers as a deployment time option, for optimization, without loss of any generality or having to change code
  • Policy Administration console
  • Repository Service enables service registration and governance
  • Assertions Service that enables automating WSDL validations
  • Built-in REST mapping capabilities

The Turmeric platform is highly extensible and customizable. You can easily plug in additional protocol processors, data formats, handlers and various other capabilities. The platform is optimized for large scale environments.

What does the Turmeric platform include?

The Turmeric platform includes:

  • Core runtime — The core infrastructure library, based on a pipeline architecture, used to run services and consumers. You can customize, or create a plugin for, almost every aspect of the infrastructure. It is divided into three parts.
    • The binding framework library is a flexible and customizable binding implementation. It provides XML, Binary XML, JSON, and Name-value bindings out of the box
    • A server-side framework library, called Service Provider Framework (SPF)
    • A client-side framework library, called Service Invocation Framework (SIF)
  • Developer tools : Simple to use Eclipse plugins that help create services and consumers, manage reusable types across services via Type Libraries, and manage error definitions that are reused across services via Error Libraries
  • Monitoring — A comprehensive monitoring platform with multiple components:
    • Runtime aggregation of various metrics on both the client and server side
    • Configurable metrics
    • Storage providers that push the aggregated data from each app server
    • A monitoring service that provides aggregated metrics data across all nodes
    • A monitoring console that lets you view metrics
  • Security Services — Everything in the platform is policy driven, and the policies follow the XACML structure and syntax. Various services, including authentication, authorization, rate limiting and group membership services, interact with the policy service and act as policy enforcement points
  • Policy Admin Console — Manages policy definitions
  • Repository Service — Service registration, dependency management and governance is a key aspect of the end-to-end platform. Repository Service is an abstraction of this functionality, which makes it agnostic to specific repository products. The actual supported capability depends on the capabilities of the underlying repository product
  • WSDL Assertion Service — As part of implementing a governance process and achieving consistency in an enterprise, you can define guidelines for the WSDL interface of a service. Using the assertions service, you can express these guidelines as XQuery assertions and validate them against WSDLs. This Assertion Service capability is also integrated into the eclipse plugin

Many of the services mentioned above are architected to have pluggable provider implementations, for example a username/password based authentication or a token based authentication for the authentication service. eBay specific providers are replaced with sample open source providers to demonstrate the capability and Turmeric users can develop their own providers and plug them in as appropriate.

Who is the target audience?

This platform is for anyone looking to adopt a SOA based, distributed computing strategy, and wants a simple way to develop, deploy and monitor services and applications on a scalable, tested platform that has all the end-to-end comprehensive capabilities described above.

As with all open source offerings, you are also encourage to contribute to the platform. I hope you choose to get involved and look forward to your questions and feedback!

{ 3 comments… read them below or add one }

James Dobies March 15, 2011 at 9:45AM

I am using a third party software to start my online store, and need a
solution for consumer checkout, I also sell on Ebay , but did not want to
pay a monthly fee for their ONLINE store solution. i am just starting and I have
a huge learning curve here. i dont profess to be a programmer, so sending calls
in HTML code to test servers , is bit of a stretch to me. I see that it is also needed
for a USPS account. to use their APIs, My ? is about this TUMERIC is it something
i should consisder to install API to integrate Paypal into my store , so I can be able
to authenticate customers paypal accounts. ??
Thank you for any support or dicertions you may have for me.

Reply

Sastry Malladi March 15, 2011 at 6:45PM

Turmeric is useful for developing an application that talks to multiple different APIs (eBay, PayPal, and other third party companies that offer the APIs), but you have to write java program code for your application. The Turmeric tooling helps you to some extent, but you need to write your application logic.
If the respective APIs support REST style access, you need not write any program to invoke them, but a simple URL query can get you the data, but again, you have to write some logic on the client side to do something with the returned data (your application logic). Hope this helps.

Reply

J Jones April 3, 2014 at 3:45AM

Plagued with soa runtime error messages, eBay is unuseable. How long will this last?

Reply

Leave a Comment

Previous post:

Next post:

Copyright © 2011 eBay Inc. All Rights Reserved - User Agreement - Privacy Policy - Comment Policy