An detailed look at 10Duke's SDK

Case Study - 10Duke, social media platform innovators

At 10Duke, we’ve been developing our technology platform for 5 years and began packaging it as an SDK when its true potential became apparent after praise from Google and alike. A few weeks ago we released it to the wider Java community with a simple and well priced licensing model.

What we do

The 10Duke SDK is an enterprise class, Java based software development kit containing a set of very powerful and simple APIs to integrate with several well known eco-systems. The kit contains around 1000 Java classes and can be used to extend the functionality of JDK6 or 7 and build powerful web, mobile and desktop apps in a very short space of time.

Unlike other Enterprise platforms, the SDK comes packaged with fully working configurations and components which allow developers to build prototype applications faster than ever before and is also flexible, easy to change and extend.

We’ve used the SDK over the past years to create a variety of applications, from simple video sharing services, to enterprise collaboration systems. It’s had over 40 commercial production deployments and we have amassed some impressive statistics in that time, including never having an application server crash on any live deployment despite us having several server clusters around the world.

Integration with Amazon S3

The 10Duke SDK provides a solution to most common application development requirements. The example below shows storage and content delivery – central to many web applications. This simple application features image upload via Bluetooth – handled by a file system monitor implementation class. The storage includes Amazon S3, local disk and 10Duke distributed storage.

The XML snippet below shows how simple integration with Amazon S3 is, as an example:

<ObjectStorage>
    <StorageProvider className="com.tenduke.amazon.s3.S3StorageProvider">
        <properties version="1.0">
            <comment />
            <entry key="content.storage.storageprovider.s3.accesskey">YOUR_ACCESS_KEY_HERE</entry>
            <entry key="content.storage.storageprovider.s3.secretkey">YOUR_SECRET_KEY_HERE</entry>
            <entry key="content.storage.storageprovider.s3.bucketname">YOUR_BUCKET_NAME_HERE</entry>
            <entry key="content.storage.storageprovider.s3.bucketaccessispublic">true</entry>
            <entry key="content.storage.storageprovider.s3.lookup.cache.size">5000</entry>
        </properties>
    </StorageProvider>
    <!-- ... the actual demo application included local disk and 10Duke distributed storage as well... -->
</ObjectStorage>

The 10Duke SDK implements storage using the StorageProvider API. StorageProvider offers uniform access and management of files, independent of actual storage and content delivery. This makes it simple to store files to local disk, as well as storing files redundantly in a distributed system or externally using a provider such as Amazon S3.

The application code shows the simplicity of using the StorageProvider API. Using storage in code is fully decoupled from what storage is configured:

//
// event contains handle to the received file.
File receivedFile = event.getReceivedFile();
//
// prepare to store the received file in a container named by the Profile configured
// as the authenticated user for handling file uploads.
String containerName = StorageUtils.getStorageContainerName(_receivingProfile);
//
// Adding file to storage is based on an URI as identification for the file. The URI
// can be later used to retrieve the file again.
URI osUri = StorageUtils.constructObjectStorageUri(receivedFile.getName(), containerName);
//
// The next line of code adds the file to storage, which in the demo application case
// was configured to be Amazon S3, local disk and a 10Duke distributed storage deployment.
StorageProviders.instance().getDefaultStorageProvider().put(receivedFile, osUri);

//
// ... accessing the file would simply require:
URI osUri = StorageUtils.constructObjectStorageUri(fileName, containerName);
StoredObjectInformation soi = StorageProviders.instance().getDefaultStorageProvider().get(osUri);
File myFile = soi.getFile();
Partnership with Tekla and achievements

At 10Duke, we work with some of the world’s biggest companies. We have been working with Tekla on one of our most recent applications. Tekla are a building modelling software company whose products have been used in many of the biggest engineering challenges of the 21st century, including Wembley and the Birdcage Stadium in Beijing.

Tekla approached us during the early phase of development of a new product, named Tekla BIMsight. The product is a free-to-download building information modelling tool, allowing structural engineers to analyse their digital models for structural efficiency. Tekla needed to distribute their software product worldwide and produce a user support community for engineers to communicate with one another to help solve common challenges.

The 10Duke SDK allowed us to build a distribution site for Tekla that featured integrations with CRM, licensing, identity management and business intelligence systems. The SDKs APIs allowed for much simpler integration than could be done without. The user support community was also built to function on the distribution site, but crucially, it was integrated into the Tekla BIMsight software tool so it was always available within the application engineers were using. The support community allows engineers to quickly get answers from others who are using the product at that moment in time, making it easier and a more engaging process for those using Tekla BIMsight.

We’re continually working to further enhance Tekla BIMsight with new features and functions and also provide Tekla with additional services. Panu Laasonen, Project Manager of Tekla BIMsight recently commented: "10Duke provide an excellent combination of skills and technology that enable us to provide a unique offering for the building and construction industry."

The Tekla BIMsight software application received the Gold Award for the most innovative product at the 2011 BATIMAT Conference in Paris, the central meeting place for the worldwide construction industry

The 10Duke SDK for Social Media can assist any developer who is building web, mobile or desktop apps and is available for download today with a free 30 day trial. Anyone who would like further information about the SDK can check out the website or contact 10Duke. Further application examples are available on 

Chris Mayer

What do you think?

JAX Magazine - 2014 - 03 Exclucively for iPad users JAX Magazine on Android

Comments

Latest opinions