Thursday Mar 26, 2015

OpenWorld 2015 Call for Papers Now Open

The Call for Papers is now open for the 2015 edition of Oracle OpenWorld, the world’s largest gathering of Oracle customers, developers, and partners, including the JavaOne conference. Share your expertise on all things Oracle with attendees eager to know what you know.

At ISV Engineering, we welcome joint work and paper submission with our ISV partners ––we enjoy seeing your software being showcased at Oracle's premier event. Learn here who from ISV Engineering and partners attended last year and what they presented. The Call for Papers closes on April 29th so submit your paper now!

Find more information on the process, timeline, and guidelines at the Oracle OpenWorld submission site.

Saturday Mar 07, 2015

Stopping Security Breaches with a Revolution in Chip Design

Perhaps the most significant value to customers of Oracle’s recently announced SPARC M7 chip  design is the enhanced security it provides.

You only have to browse the daily news headlines to understand just how important security is to Oracle’s enterprise customers today.  Names like Target, Home Depot, Wal-Mart, JP Morgan Chase, Apple and many more immediately come to mind.  Top-level executives are losing their jobs over this.   To quote a March 6, 2015 Fortune Magazine article on “5 Huge Cyber-security Breaches”,

“Hackers have been slipping through corporate computer defenses like they’re Swiss cheese.”

At the Hot Chips Conference in August of 2014 Oracle unveiled the next generation SPARC M7 processor,  a revolutionary change in its microprocessor design, highlighting an architecture advancement called “Software in Silicon.”   SPARC engineers collaborated with Oracle’s software engineers to hardwire specific software techniques directly onto the SPARC M7 chip.  And don’t think this happened over night -- this has been ongoing work between hardware and software teams for a good portion of the 5 years since Oracle purchased Sun Microsystems, along with the rights to the SPARC microprocessor.

In his keynote speech at Oracle OpenWorld 2014, Larry Ellison referred to the M7’s security feature as

the most important piece of engineering we’ve done in security in a very, very long time.” 

So back to the Swiss cheese --

One very important security innovation inherent in this new SPARC M7 microprocessor design is “application data integrity,” or ADI.  ADI makes sure that a memory area is accessed only for the purpose for which it was allocated.  Memory allocation issues are often the source of cyber-security breaches.  ADI can prevent any read or write of data beyond the breadth of the data.  And what is revolutionary is that it does it in hardware – actually in the silicon of the forthcoming SPARC M7 processor.

But that is just the tip of the iceberg.  ADI does a lot more to stop malicious attacks of valuable corporate data.  For example, stopping a security bug like Heartbleed, which is a severe memory handling vulnerability in the OpenSSL library.  Heartbleed can trick the server into sending more memory than a given user is authorized to access, with potential user names, passwords and security key information that should be protected.  When the ADI feature is enabled, it can protect against the Heartbleed bug by detecting an invalid memory access on the server.  Exactly how this works is clearly demonstrated in this short demo of this feature in action.  Check it out -- its pretty cool!

If you are a developer and you want to test this stuff out, Oracle has announced a new Software in Silicon Cloud where you can do that!  This cloud is a secure environment with ready-to-run virtual machine environments. In addition, it includes Oracle Solaris Studio 12.4, which provides a tool set that detects numerous types of memory corruption and can aid developers in quickly improving code reliability.  In fact, an upcoming Studio 12.4 update uses the Software in Silicon ADI feature to help the code analyzer work at near hardware speeds to allow developers to quickly find and fix memory errors with minimal overhead.  Check out Raj Prakash’s blog [Move Over Purify and Valgrind, There is a New Kid in Town], for some staggering numbers on how it compares to other memory access checkers.

Here are some further links to check out  --- note that we have a live webinar on this March 18th:


Monday Feb 16, 2015

Oracle Solaris 11 and Pluribus - application-awareness in the cloud

Talk to any executive of any leading enterprise company and they will tell you that they are embracing cloud computing for the future of their business.  And with the rapid growth of turnkey cloud computing solutions, the network fabric carrying the application packets is emerging as a key focus to drive greater performance, reliability, and efficiency of the application.  Networks need to be able to prioritize packet flow according to the importance of the application.  So if an application is of high importance to their business, the network fabric should be able to know that, and provide the necessary resource to ensure high performance of that application is delivered.

Oracle Solaris 11.2 and Pluribus Networks are providing an integrated solution for doing just that.
You can read about it in a recently release solution brief: 

Oracle Solaris 11 and Pluribus Networks - Enabling Application-Driven SDN in the Cloud

This is an integrated solution for controlling the network in real-time, by combining Oracle Solaris 11.2 built-in application driven software-defined networking (SDN) with Pluribus Networks bare-metal network Hypervisor.   This solution offers fine-grained QoS services, allowing for different tenants, applications, and even flow within applications, to be assigned SLAs to leverage the high-end router-class traffic manager and the network processing unit on the Pluribus platform. Applications become network aware so they can monitor congestions, errors, and latency across the fabric, allowing them to dynamically adjust their network resource requests.

In addition, there is a short (6 min) video interview on this topic with Founder and CTO of Pluribus Networks, Sunay Tripathi:  Oracle and Pluribus Ally on Software Defined Networking

For additional details on Pluribus Networks solutions, visit www.pluribusnetworks.com

Thursday Jan 15, 2015

Webinar: Start Testing Your Application Code Today!

Oracle ISV Engineering is offering an exciting opportunity to learn about the NEW offering for developers who want early access to the revolutionary Software in Silicon technology in the forthcoming Oracle SPARC M7 processor running Oracle Solaris 11.  In this LIVE webinar (8:00am PST on Jan 21), developers will learn how to use the NEW Software in Silicon Cloud to dramatically improve reliability and security, and accelerate application performance in today’s market.

Course Title:    Oracle's Software In Silicon Features Available for Developers Today!
Target Audience:  Application Developers with experience on Oracle Solaris
Event Date:    January 21, 2015
Event Time:    8-9:00am PST (Pacific Standard Time)

** Replay of this webinar available HERE **

Software in Silicon implements accelerators directly into the processor to deliver a rich feature-set that enables quick development of more secure, robust, reliable, and faster databases and applications.  With the Oracle Software in Silicon Cloud, developers can have a secure environment in which to test and improve their software as well as exploit the unique advantages of Oracle's Software in Silicon technology.  Angelo Rajadurai, Software Engineer with ISV Engineering, will provide an explanation of the technical details of the Software In Silicon features and a demonstration of how developers can use the Software in Silicon Cloud to test these features on their applications today.

Wednesday Jan 14, 2015

Java 8 Parallel Streams on SPARC T5

I showed on this previous post how a parallel word search implemented by Java 7 fork/join (based on this article) scales on a T5-4 server. Java 8 new features let the code needed for the same parallelism become much more simple, compact, and readable. Parallel streams and lambda expressions spare us from many helping classes and methods definitions we needed to create before.

Here is how to add Java 8 parallel streams support to the word search example. Looking at the code of the above fork/join article (can be downloaded from here), we can easily avoid all recursive tasks and all fork/join code by replacing (or adding to, to compare) the WordCounter.compute() method with computeWithStreams(). We still keep the same parallel processing:
 // computeWithStreams() performs word counting by parallel streams
 public long computeWithStreams()
 {
    List<Document> docList = Document.getDocList();
    return dlist.parallelStream().
    	   mapToLong(d -> occurrencesCount(d, searchedWord)).
    	   sum();
 }

The parallelStream() method inside the computeWithStreams() method shown above automatically creates the threads parallelism behind the scenes. The current Java 8 implementation of parallel streams uses the fork/join mechanism, so the performance gain remains the same as using fork/join directly. 

The rest of the code here is the helper code for preparing the documents list and call computeWithStreams(). First We need to add this static field and a static getter method to the Document class:

    // Listing all documents statically in Document class. Not necessarily a good practice,
    // but for the sake of showing the main idea here
    List<Document> docList = Document.getDocList();

 Then we populate this list with each of the generated documents (at the end of Document.fromFile() method). Instead of: 

    return new Document(lines);

we add:

    Document Doc = new Document(lines);
    docList.add(doc);
    return doc;

Finally, we just add the code to the main() method (just after the same single and fork/join calls):

    long[] parallelStreamTimes[i] = new long[repeatCount];

    for (int i=0; i<repeatCount; i++) {
        counts = wordCounter.computeWithStreams(args[1]);
        stopTime = System.currentTimeMillis();
    	parallelStreamTimes[i] = (stopTime - startTime);
    	System.out.println(counts + " , parallel streams search took " + parallelStreamTimes[i] + "ms");
    }

My next post will deal with how to observe the parallelism created behind the scenes, and how to troubleshoot parallelism (scalability) problems. Meanwhile, take a look at how to run Java faster on Solaris.

About

How open innovation and technology adoption translates to business value, with stories from our developer support work at Oracle's ISV Engineering.

Subscribe

Search

Categories
Archives
« April 2015
SunMonTueWedThuFriSat
   
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
  
       
Today
Feeds