Friday Apr 11, 2014

Friday Spotlight: Writing a Broker for Oracle Secure Global Desktop

We talked about the dynamic launch feature in Oracle Secure Global Desktop earlier and pointed out that the code providing the functionality is implemented in a broker.  Here, we'll look at the fundamentals of writing a broker before working through a scenario where a bespoke broker would simplify operations.

Broker Basics

The interfaces and classes you need to write a broker are in the com.tarantella.tta.webservices.vsbim package in the sgd-webservices.jar archive. 

IVirtualServerBroker is the key interface and all Secure Global Desktop brokers must implement it.  These are the methods where a broker writer would typically add logic.

void initialise(Map initParams) This method is called once when the broker is loaded by the Secure Global Desktop workspace.  It gives the broker a map of the key/value pairs configured on the dynamic application server object using the broker.  Typical parameters would be the name and port of a source of real or virtual application servers.
Map getCandidateServers(Map params) Secure Global Desktop calls this method to obtain a list of servers available to a particular user.  The broker receives a map of parameters, including the identity of the user, and the broker returns a list of candidate servers.  The broker writer is free to decide how to populate that list and whether to return one candidate or several.  For example, the broker could contact a database to reserve a single server.  Alternatively, it could use APIs or web services to contact a VM provider and get a list of available virtual machines.
ICandidateServer prepareCandidate(String type, ICandidateServer candidate) This method is called after getCandidateServers returns a single option or the user has selected one from several.  This is the place for any code needed to set-up the chosen server or virtual machine.
void destroy() This is where the broker would tidy-up, freeing any resources it had used, like sessions and connections.

A Sample Broker

Let's look at a scenario where writing a broker could simplify operations.  You are an administrator of a Secure Global Desktop deployment where users periodically need to access a key application.  Only a single instance of the application can run on any one server and you have a limited number of licenses.  When a user requires access to the application, they submit a service request to reserve one.  The traditional, broker-less approach in Secure Global Desktop would be to create an application object, configure it to run on the reserved application server and then assign it to the user who reserved it.  Time-consuming if you have to do this repeatedly and on a regular basis.

However, if we can access the reservation database, we can do it dynamically in a broker.  The operation now becomes:

  • Once only, the administrator assigns the application a dynamic application server configured with a custom broker

Then,

  • User submits a service request and reserves a server
  • User logs into Secure Global Desktop and clicks the link to launch the application
  • The broker queries the database, gets the server that the user has reserved and launches the application on it

For the administrator, there is no need to create, modify or destroy objects in the Secure Global Desktop datastore every time a user submits a service request.

Skipping many details, defensive coding and exception handling, the broker code would look something like this:

package com.mycompany.mypackage;

import com.tarantella.tta.webservices.vsbim.*;
import java.sql.*;
import java.util.*;

public class DbBroker implements IVirtualServerBroker {

    static private final String TYPE = "A Description";
    private Connection dbConn;

    public void initialise(Map<String, String> parameters)
            throws VirtualServerBrokerException {
        // Connect to reservation database.  End-point and credentials are
        // supplied in the parameters from the dynamic application server
        dbConn = DriverManager.getConnection(params.get("URL"), params.get("USER", params.get("PASS"));
    }

    public Map<String, List<ICandidateServer>> getCandidateServers(
            Map<String, String> parameters)
            throws VirtualServerBrokerAuthException,
                   VirtualServerBrokerException {
        Map<String, List<ICandidateServer>> launchCandidates =
                new HashMap<String, List<ICandidateServer>>();

        // Get the user identity
        String identity = parameters.get(SGD_IDENTITY);

        // Lookup the application server for that user from the database
        Statement statement = dbConn.createStatement();
        String query = createQuery(identity);
        ResultSet results = statement.executeQuery(query);
        // Parse results;
        String appServerName = parseResults(results);

        if (appServerName != null) {
            // Create the assigned server.
            CandidateServer lc = new CandidateServer(appServerName);
            lc.setType(TYPE);

            List<ICandidateServer> lcList = new ArrayList<ICandidateServer>();
            lcList.add(lc);
            launchCandidates.put(TYPE, lcList);
        }

        return launchCandidates;
    }

    public ICandidateServer prepareCandidate(String type,
            ICandidateServer candidate)
            throws VirtualServerBrokerException {
        // Nothing to do
        return candidate;
    }


    public void destroy() {
        // Close the connection to the database
        dbConn.close();
    }

    // And the other methods
    public boolean isAuthenticationRequired() {
        // No user authentication needed
        return false;
    }

    public Scope getScope() {
        // Scope at the application level for all users.
        return Scope.APPLICATION;
    }
}

In summary, dynamic launch and custom brokers can simplify an administrator's life when operating in a dynamic environment.  The broker can get its data from any source with a suitable interface: a database, a web server or VM providers with open APIs.  Next time, we'll illustrate that with a broker connecting to Virtual Box.


Friday Apr 04, 2014

Dynamic Launch in Oracle Secure Global Desktop

In an earlier entry, Oracle Secure Global Desktop and Oracle VDI, we mentioned the dynamic launch feature in Secure Global Desktop and described how we used that feature to connect the two products.  Here's a summary of that integration:

SGD and VDI

Now is a good time to dig a bit deeper into dynamic launch.

Dynamic Launch

There are three parts to it:

  • Dynamic Applications
  • Dynamic Application Servers
  • Brokers

Dynamic Applications

A dynamic application is a type of object in Secure Global Desktop that maps to one or more other applications and offers a user a choice between those applications.  Normally, you would map related applications, like a workflow, or alternatives, where you would expect a user to run only one of the applications at any one time.  'My Desktop' is an example of the latter: it is a dynamic application that maps to a Unix desktop and a Windows desktop, the thinking being that most users would run one or the other, but not both simultaneously.

Dynamic Application Servers

A dynamic application server is an object that tells Secure Global Desktop to execute some code to determine where an application should run.  It can be assigned to an application object just like other application servers and the code is executed when the application is launched.  The code is delivered as a broker.

Brokers

A broker is a Java class that implements a simple interface and is a property of a dynamic application server.  Currently, Secure Global Desktop ships with three brokers:

  • SGD Broker: when this is assigned to an application object, it grabs all the other (real) application servers assigned to the application and presents the user with a choice
  • User-defined SGD Broker: an extension of the SGD Broker that adds the option for a user to enter a host name
  • VDI Broker: this is used to provision hosts through VDI

Together, they provide a structured, flexible and extensible system: a single dynamic application in a user's workspace can open up a wealth of choices.  Let's consider a scenario where a user needs to run a range of web applications that require different browser types and versions.  One solution in Secure Global Desktop would be to create separate items for each type of browser and publish them to the workspace.  Alternatively, you could create a dynamic application that maps to the different types of browser and logically group them together.  And this can be taken a step further: by assigning a dynamic application server to an application, that browser could be run on a server dynamically provisioned through VDI or whatever hypervisor the broker has been written to handle.

Dynamic Launch

So, three key components make up dynamic launch.  Two of them, dynamic applications and dynamic application servers, are part of the Secure Global Desktop infrastructure and plumb the feature into the datastore, workspace and launch process.  They belong in the administrator's realm.  The third component, the broker, provides extensibility.  Secure Global Desktop ships with a broker to deliver VMs provisioned through Oracle VDI, but the open interfaces mean it does not have to stop there. To go further, we must enter the developer's world and write a little code.  Next time...


Friday Mar 07, 2014

Oracle VM Virtual Appliances now available for E-Business Suite 12.2.3

Congratulations to the E-Business Suite team on the latest release.

Please check out the details in Steve Chan’s blog.

Have a great weekend!

Wednesday Dec 04, 2013

Dell World 2013 Features Oracle Linux and Oracle VM



Oracle is proud to be a Gold sponsor at Dell World 2013. Join Oracle Linux and Virtualization experts and discover how you can benefit from Oracle software integration with Dell hardware. Our activities include:

Session: Why Choose Oracle Linux for your Oracle Database 12c Deployments

Details: Thursday, 1:30 – 2:30pm, Room 17AB

Speaker: Chris Kawalek, Oracle

Find out how Oracle Linux is optimized for Oracle Database and the benefits of deploying them together on an integrated and fully tested infrastructure.

Theater Presentation: Best Practices for Virtualizing Oracle Database and Oracle Applications with Oracle VM

Details: Thursday, 11:00-11:25am, Expo area (Theater on the right)

Speaker: Chris Kawalek, Oracle

Realize the true potential of virtualization beyond server consolidation using Oracle VM’s application-driven virtualization approach.

Theater Presentation: Dell/Oracle Active Infrastructure 

Details: Thursday, 2:30-2:55pm,  Expo area (Theater on the right)

Speaker: Tom Kopec, Oracle

Get a high level review of the recently announce Dell / Oracle Active Infrastructure.  

Booth  #401G
Come to the Oracle booth on Monday and Tuesday, talk to our experts, pick up free Oracle Linux and Oracle VM software DVD.

We hope to see you at Dell World.

Friday Nov 22, 2013

Friday Spotlight: Oracle VM VirtualBox Receives Windows IT Pro Community Choice Award!

Happy Friday, everyone. We hope you've had a great week!

The results from the Windows IT Pro 2013 Community Choice Awards are in and we’re proud to say that Oracle VM VirtualBox was named one of the best virtualization products!

This community-voted award is great validation of our work to enhance the product. Learn more about the latest release, Oracle VM VirtualBox 4.3.

We want to thank the Oracle VM VirtualBox community for their continued support as we work to make it easier and better than ever for users to run virtual machines on their desktop and laptop computers.

Monday Nov 04, 2013

What's New in Oracle Secure Global Desktop 5.1 webcast

We have a really exciting webcast coming up for you this week that will tell you all about what's new in Oracle Secure Global Desktop 5.1. Hosted by Andy Hall, you will learn all the exciting features in this brand new release!

What's New in Oracle Secure Global Desktop
Thursday, November 7, 9AM Pacific Time
Register now.

If you'd like a sneak peek, hop on over to the Fat Bloke Sings, where Fat Bloke goes into detail on some of the new features. My favorite is accessing your applications (or even full desktops) from SGD using just the Chrome web browser. In this graphic, Fat Bloke is running Oracle Linux via SGD and accessing with Chrome on the Mac. This required no installation on the client, no dependencies on any other software, nothing -- just open up Chrome, login, and all of your stuff is there. Very cool.

 We hope to see you on Thursday!

-Chris 

Tuesday Oct 15, 2013

Just released: Oracle VM VirtualBox 4.3

This morning, Oracle VM VirtualBox 4.3 hit the wire. You can download it for Windows, Mac, Linux, and Solaris here.

This is a great release, adding a unique virtual multi-touch feature (great for testing Windows 8.1 applications on your standard desktop PC), support for new platforms and some really fantastic networking enhancements.

Head on over to the FatBloke blog for a rundown of what's new, or read the news release.

 -Chris 

Wednesday Oct 02, 2013

UPDATE #3: Sun Ray and Peripheral Kits Last Time Buy Information

The blog entry covering the last-time buy information for Sun Ray hardware and Peripheral Kits has been updated with new Peripheral Kit information.  Please refer to that blog entry for more information by clicking here


Thursday Sep 19, 2013

Oracle Virtualization Strategy, What’s New and Roadmap at Oracle OpenWorld!

Just 3 days left until Oracle OpenWorld! If you're working on your final session selections, don't miss these:

GEN9535 - Oracle Virtualization Strategy and Roadmap is the virtualization general session featuring Wim Coekaerts and Monica Kumar. This session is always filled with key information on Oracle's virtualization portfolio. If you go to only one virtualization session at Oracle OpenWorld, this is the one to go to.

CON9544 - What’s New with Oracle VM Server for x86 and SPARC: A Technical Deep Dive is where Adam Hawley and Honglin Su will give you an inside view of product roadmaps. 

CON4465 - Oracle SDN: Software-Defined Networking in a Hybrid, Open Data Center will give you a glimpse of Oracle Virtual Networking and SDN.

In addition to the virtualization track sessions, you can learn about our partners exhibitions in the Oracle Linux and Virtualization Pavilion.

Don’t forget that once you are done with sessions, you can also enroll in Oracle VM training at your own leisure Oracle VM Administration: Oracle VM Server for x86

Friday Aug 16, 2013

UPDATE: Sun Ray and VDI Last Order Dates

For important updates and clarifications on Sun Ray and VDI Last Order Dates, please click here to view the updated blog.

Tuesday Aug 13, 2013

Oracle Virtual Compute Appliance: The View from Product Management

First, if you haven't already, read Chris Kawalek's fine summary of today's announcements below.   But, as the head of virtualization product management at Oracle, I thought I'd add some comments.

Our goal, and what we are delivering with the Oracle Virtual Compute Appliance, is to perform all the necessary installation and configuration for the hardware and software to allow you to go from power-on to a running application (or database or middleware) in about an hour.  Already, one press headline has declared "Oracle tar ledningen på nyckelfärdiga servrar".  Now, just in case your Swedish is a bit rusty, that translates to "Oracle Takes the Lead in Turnkey Servers"  So what's all the fuss about?

Oracle Virtual Compute Appliance...or "OVCA" as it likes to be called....is a general-purpose, converged infrastructure appliance focused on providing rapid deployment of not-only your hardware infrastructure but also, by virtue of Oracle VM, of all the application stack it hosts.  Unlike anything else on the market, Oracle has a large portfolio of ready-to-run Oracle VM virtual machines with enterprise applications, databases, and middleware that have already been installed and configured. So you just need to download the VMs from Oracle and deploy them into your environment and they are ready to go as soon as the VM starts. 

Aside from fully automating it to allow it come up and be ready for use very, very quickly, OVCA has been designed to fit easily into your existing data center.  As a general purpose appliance, it supports all the OSes you want to run on x86:  Linux of various flavors, including our favorite Oracle Linux, but also Oracle Solaris, and Microsoft Windows. And it also provides choice and flexibility for external storage by supporting the use of the excellent Oracle ZFS Storage Appliance as well as storage from major 3rd parties including NetApp and EMC.

Oracle has a great line of engineered systems to pretty much meet your every need, whether it is the "Exa-" class systems that are engineered explicitly for extreme performance with specific applications/workloads or whether you are looking at the " -Appliance" class systems focused on extreme ease of use as we are doing with the Oracle Virtual Compute Appliance.  We've been hearing from our customers how much they love their Exa- machines but then they ask us what we've got for "the rest of their stuff", by which they mean legacy software or versions of software, Microsoft servers, or just generally anything that does not demand the extreme performance of the Exa systems.

I tell people that the "Exa-" systems are the supercars of the engineered systems world:  exceptionally fast and very tailored for their purpose, while the Oracle Virtual Compute Appliance is sort of like your favorite minivan:  very easy and convenient to use, with a great set of general purpose features for every day, general purpose use.  Their focus is very different between them, but they are both excellent at what they do.  And, in this sense, they are also very complementary and we expect these products to be companions to each other in a lot of data centers.

One of the aspects about OVCA that is very interesting and increasingly important over-time is that the infrastructure it delivers is software-defined.  The hardware itself is "wire-once": We wire it up completely in the factory, including pulling cables for ethernet, InfiniBand, and power up to each individual slot in the rack regardless as-to whether you have ordered a server to go in that slot or not.  Everything is pre-positioned.  This means you will never have to add or move cables inside the rack as you grow.  If you add a new node in the field, you just push that node into the slot and the cables are already in-place to push into the connectors on the back of the server....Done.  To those of you reading this that have tried to do cabling in a completely full rack, you know why this is important.  Racks today are often packed so densely with cables, it is almost impossible to even squeeze two fingers through to connect or remove an ethernet cable, much less a thicker power- or InfiniBand cable.  

But let's get back to how the compute and network are software defined, which means you can more easily automate it to configure and expand and change it without ever having to walk into the data center to move cables.  This makes you more agile and flexible but also reduces risks of mistakes or damage that come with moving things around in a very densely packed rack.  It also presents the opportunities for adding capabilities down the road without having to change the hardware.

Some of the crown jewels of technology in OVCA that enable this are Oracle VM server virtualization on the Sun servers and Oracle SDN software for the Oracle Virtual Networking Fabric Interconnect hardware.  In effect, Oracle VM enables "software defined servers" while Oracle SDN enables "software defined networking".  This combination allows us to fully automate the system bring-up using the OVCA controller software that serves as an automation and orchestration layer to coordinate the bring-up and on-going configuration activities of OVCA, e.g. discovering servers, putting Oracle VM on them, discovering network hardware, putting software-defined private neworks on them, and then putting the servers into the newly created networks.

Collectively, these capabilities not only produce a great product today but also provide a powerful base for future enhancement and expansion through software.

Since I've only scratched the surface here, to learn more details, a replay of the webcast, including a demo showing the deployment of an Oracle 12c Database in about 52mins from power-on can be found here.

All the information on oracle.com can be found here or by going to www.oracle.com/ovca 

And for those of you that are thrilled by the gripping prose usually found in press releases, click here

So keep an eye out for new information over time on this blog or drop us a Comment below.  And, of course, your friendly Oracle account manager or partner would be glad to discuss how you might be able to benefit from standing up a complete application stack in about an hour.

Friday Aug 02, 2013

Friday Tips #39

Happy Friday! Our tip this week is on a little quirk of using Oracle VM 3 with templates developed in Oracle VM 2.

Question:
Why do I see new Oracle VM 3 networks named xenbr0 and xenbr1 after importing an Oracle VM Template?

Answer by Gregory King, Principal Best Practices Consultant, Oracle VM Product Management:
Some legacy Oracle VM Templates as well as some newer templates are designed to come pre-configured with network interfaces for Oracle VM 2 environments. Oracle VM 3 doesn’t really know what to do with the pre-configured network devices during the import process of an Oracle VM Template, so the product errors on the side of caution by creating place holders for networks. 

This means Oracle VM 3 automatically creates superfluous or false networks using the name of xenbr0, xenbr1, etc. when you import an Oracle VM Template that uses the Oracle VM 2 naming convention for bridges. So you are left with new networks named xenbr0 or xenbr1 that are useless since they are not associated with any servers, network ports or bonds. This can be quite confusing.

The problem is very easy to fix. Simply edit the newly imported Oracle VM Template, replace the networks named xenbr0 and xenbr1 with your real networks, then switch to the Network tab, highlight the networks named xenbr0 and xenbr1 and then delete them. 

Here is a step-by-step example... 

The screen shot below shows Oracle VM networks before a template is imported:

The next screen shot shows the superfluous networks after the new template has been imported:

The networks named xenbr0 and xenbr1 can safely be removed after they are no longer being used by the newly imported Oracle VM Template. Simply switch to the Repositories tab, find and edit the newly imported template as show in the screenshot below:

Now move xenbr0 and xenbr1 to the left hand box while moving the correct network or networks to the right hand box as shown in the screen shot below:

Finally, switch to the Networking tab, highlight and then delete the networks named xenbr0 and xenbr1 as shown in the screenshot below: 

...and now your Oracle VM networks should look just like they did before importing the template :-)


Thanks Greg!

We'll see you all next week with another tip!

-Chris 

Thursday Aug 01, 2013

UPDATED! Sun Ray Hardware Last Order Dates & Extension of Premier Support for Desktop Virtualization Software

For the latest updates on Sun Ray Client hardware and Peripheral Kit last order dates, and information about Sun Ray Software and Oracle Virtual Desktop Infrastructure licensing and support, read the Sun Ray Hardware Last Order Dates and Extension of Premier Support for Desktop Virtualization Software document on OTN. We recommend to regularly check this document as it is frequently updated with the latest availability status of Sun Ray Clients and Peripheral Kits.

Please note that availability of the Sun Ray Clients and Peripheral Kits cannot be absolutely guaranteed up to the latest published last order dates due to the inherent unpredictability of demand, and we strongly recommend placing last time buy orders as early as possible to maximize Oracle's ability to fulfill orders.

Monday Jul 15, 2013

Important Information about Oracle Desktop Virtualization Products

In an effort to more tightly align Oracle's future desktop virtualization portfolio investments with Oracle Corporation's overall core business strategy, we have ended new feature development for Oracle Sun Ray Software (SRS), Oracle Virtual Desktop Infrastructure Software (VDI), Oracle Virtual Desktop Client (OVDC) Software, and Oracle Sun Ray Client hardware (3, 3i, and 3 Plus). 

Customer support and the renewal of support contracts for these products will continue uninterrupted. Customers can continue to purchase new licenses.  Exact time-frames for a last order date for Oracle Sun Ray client devices will be announced shortly. [UPDATE: This information is now available here.]

Going forward, Oracle's desktop portfolio investments will be focused on continued development and new enhancements to both Oracle Secure Global Desktop and Oracle VM VirtualBox software.

Friday Jul 12, 2013

Friday Tips #36

This week we're talking about 3D graphics performance with Oracle VM VirtualBox.

Our own Fat Bloke just published a blog that describes how to make sure you get the most out of Ubuntu's GUI using the OpenGL acceleration in VirtualBox. In the picture below, you'll see all the shiny Chromium renderers in use:

Head on over there to have a read.

We'll see you next week!

-Chris 

About

Get the latest scoop on products, strategy, events, news, and more, from Oracle's virtualization experts

Twitter

Facebook

Search

Archives
« April 2014
SunMonTueWedThuFriSat
  
1
5
6
7
8
9
10
12
13
14
15
16
17
19
20
21
22
23
24
25
26
27
28
29
30
   
       
Today