Home
Schedule
Conference Info
Sponsorship Information
IBM Watson AI Day
Registration
Press Registration
Speakers
Sessions
Sponsors
Exhibitors
JETRO × Six Prefectures of Japan Pavilion Exhibitors
  Media Sponsors
  Topics
  Call For Papers
  Hotel Info
  Past Events
Untitled Document
2017 West
Premium Sponsors
Diamond



Platinum
@DevOpsSummit

Bronze










Untitled Document
2017 West
Keynote Sponsor


Untitled Document
2017 West Exhibitors
























@ThingsExpo











Untitled Document
2017 West Media Sponsors














Untitled Document
2017 East
Premium Sponsors
Diamond



Platinum
@DevOpsSummit

@DevOpsSummit

Silver
@DevOpsSummit


Bronze










Untitled Document
2017 East Exhibitors
@DevOpsSummit




































Untitled Document
2017 East Media Sponsors
















Untitled Document
2016 West
Premium Sponsors
Platinum Plus



Silver
@ThingsExpo

Bronze







Untitled Document
2016 Welcome Reception Sponsor

Untitled Document
2016 West Exhibitors










@DevOps Summit






@DevOps Summit

@WebRTC Summit












@WebRTC Summit









@DevOps Summit

Untitled Document
2016 West Media Sponsors











Untitled Document
2016 East Gold Sponsors

@ThingsExpo

Untitled Document
2016 East Silver Sponsors


@DevOps Summit

Untitled Document
2016 East Bronze Sponsors

Cloud Expo







Cloud Expo

Untitled Document
2016 East Vendor Presentation Sponsors

@DevOps Summit

Untitled Document
2016 East Exhibitors

@DevOps Summit





@ThingsExpo



@DevOps Summit

@ThingsExpo


@DevOps Summit









@DevOps Summit







@DevOps Summit










Untitled Document
2016 East Media Sponsors










Untitled Document
2015 West Gold Sponsors

Untitled Document
2015 West Silver Sponsor


Untitled Document
2015 West Bronze Sponsors

Cloud Expo |@ThingsExpo

Cloud Expo | DevOps Summit


@ThingsExpo





@DevOps Summit

@ThingsExpo


@ThingsExpo

 


Untitled Document
2015 West Exhibitors












@DevOps Summit





@DevOps Summit












@DevOps Summit

@DevOps Summit




@ThingsExpo


@DevOps Summit

 


Untitled Document
2015 West E-Bulletin Sponsors

DevOps Summit

Untitled Document
2015 West
Associate Sponsor

Untitled Document
2015 West Media Sponsor

Untitled Document
2015 East Gold Sponsors


WebRTC Summit

DevOps Summit

Untitled Document
2015 East Silver Sponsors
DevOps Summit
WebRTC Summit

Untitled Document
2015 East Bronze Sponsors

DevOps Summit

Cloud Expo | DevOps Summit
@ThingsExpo

DevOps Summit

DevOps Summit

Untitled Document
2015 East Delegate Bag Sponsors


Untitled Document
2015 East Exhibitors

DevOps Summit


@ThingsExpo



DevOps Summit






Cloud Expo | @ThingsExpo
Internet of @ThingsExpo
@ThingsExpo
DevOps Summit

DevOps Summit
@ThingsExpo
DevOps Summit
DevOps Summit
DevOps Summit
DevOps Summit
DevOps Summit



@ThingsExpo

Untitled Document
2015 East Associate Sponsor

Untitled Document
2015 East
Media Sponsors

Image Loading
Image Loading

As images come in different sizes and formats, image loading is often a complex and time consuming process. Image loading usually consists of fetching the image file, reading the header, decoding the compressed pixels' values, and then delivering the pixels. Java currently supports two types of images, JPEG and GIF. The loading mechanisms for these formats are already built-in. If other formats are involved, users will have to write their own loading programs.

Image loading may mean different things to different applications. Some applications may display images directly without explicitly using image properties or pixel values. In this case, image loading involves fetching the image as a single object. Image animation is an example of such an application. In some applications, pixels may have to be manipulated. Image loading for such applications will include fetching the image properties and pixel values explicitly, involving several stages. Image Analysis belongs to this category of applications. This article describes some loading issues, problems, and difficulties commonly encountered and a solution to some of these problems.

Asynchronous Loading
The Java environment, which is multithreaded, allows asynchronous loading of images. Whether it is from a network or local disk, it takes a finite amount of time to load an image; this duration is unpredictable. As an image is being loaded, the program which uses that image will require the loading status in order to proceed with its task. There can be two approaches to accomplishing this...polling and notification. In polling, the program that needs the image checks the loading status at regular intervals. In a multithreaded environment, this approach is inefficient because the program that waits for the images not only wastes CPU cycles but also hinders the progress of other tasks.

In the notification approach, the image loading program notifies the image user program as the image is being loaded. In this approach, CPU cycles are not wasted and the progress of other tasks is unhindered during loading. However, a proper synchronization mechanism is needed between the image loading and image using programs to trigger appropriate actions at different stages of loading.

The AWT imaging model facilitates image loading through notification. The image producer delivers the pixels to the image consumer asynchronously. The image observer monitors the delivery of pixels. The ImageObserver interface has just one method called imageUpdate(). Whether it is image loading or image drawing, whenever an asynchronous image operation is involved, the imageUpdate() method is invoked at regular intervals to notify the status of that image operation. Although the AWT component class has the built-in imageUpdate() method, it is often necessary to override the imageUpdate() method to provide a better control over the actions that are performed upon image loading.

A typical imageUpdate() method is shown in Listing 1. The arguments of the imageUpdate() method include the status flag, width, and height. The status flag is a bitmask with each bit in the flag representing an operation. If the imageUpdate () method returns false, the updates for that operation will not be notified further.

Image Loading Stages
As Java is used in a wide variety of applications, the loading requirements vary. For example, in image animation there is no need to explicitly extract pixels. In contrast, in image analysis it is a must.

Depending upon the applications, image loading can involve a number of steps. These steps can be grouped into the following three stages.

1. Fetching the Image Object
The getImage() methods in the Applet class or AWT Toolkit class will perform image fetching. Just the invocation of getImage() method does not force an image to load. Images are loaded only when they are needed. Thus, the getImage() method is just a request to load an image. Actual delivery of pixels takes place only when an image is required.

2. Fetching Properties
An image can be considered as a combination of raw pixel values and information about the image. This information may consist of geometrical parameters, viewing parameters, scanning parameters, ownership, image format, etc. The properties of an image can be obtained by explicit requests; i.e., by using the get methods in the Image class. There are three methods available for property fetching. The width and height of an image can be fetched by getWidth(ImageObserver observer) and getHeight(ImageObserver observer) methods respectively. The other image properties can be fetched by the getProperty(String name, ImageObserver observer). This method can be used to fetch any named property that is specific to an image format. All the properties may not be needed to view an image.

Getting the width, height, and other properties are asynchronous operations, which means that the properties requested may not be immediately redeemable if the image is not loaded. In such a case, these methods return a -1. As in any other asynchronous operation in AWT, an ImageObserver object monitors the status of the image property fetch. The ImageObserver receives updates about an Image operation through the imageUpdate() method. When the WIDTH bit is set, the width of the image is available; similarly, image height is available when the HEIGHT bit is set.

3. Extracting Pixel Values
When an image object is loaded, pixels are hidden within that object. In order to grab the pixel values, specific requests need to be made. The PixelGrabber class which implements the ImageConsumer interface is used for extracting pixels. A PixelGrabber object should first be created as:

PixelGrabber pg = new PixelGrabber(img, 0,0,width,height, pixMap, 0, width);

When the PixelGrabber object is created, resources are allocated to enable the pixel grabber operation. The actual fetching of pixels is done by the grabPixels() method, shown in Listing 2.

A request to extract pixels values will also trigger the delivery of pixels.

Image Loading Problems
In this section, some of the problems and difficulties encountered due to Java's image loading are described.

1. Image Painting Problem
As mentioned before, images are loaded only when they are needed. This could cause problems if the paint() method is executed before the image is fully loaded. If double buffering is not implemented, you can see the image slowly unfolding on the screen as it loads. Even with double buffering, if the actual paint() or update() is executed before it is drawn on the off screen graphics, the screen will be blank.

There are many solutions to the image paint problem. One of them is to force the image to load in advance. The AWT component and the Toolkit classes provide the prepareImage() methods to force image loading. When an image is loaded in advance, some resources are tied up for a longer time. When a large number of images is involved, loading in advance is not desirable. The other solution is to use the imageUpdate() method to paint the image only after the image is completely loaded.

2. Animation Problem
Late loading can also result in slow animation as the images are being loaded. It may also lead to undesirable flashing. A solution to this problem is to load all the images in advance and then start the animation. Although prepareImage() methods can be used to accomplish this, it may involve some additional programming. However, the MediaTracker class which uses prepareImage() and imageUpdate() has methods to accomplish advance image loading and tracking. One problem with advance loading is that the viewing area in the applet/application will remain blank until all of the images are loaded. This may not be desirable if the loading times are larger. A progressive painting solution can be resorted to in such cases.

3. Loading Images for Non-Display Applications
Although MediaTracker is easy to use, it can not be used universally. The MediaTracker constructor requires an AWT component to be an argument. Moreover, that component has to be visible on the screen. This is not a problem in multimedia types of applications, as images are always displayed in some subclasses of the AWT component class. However, in Image Analysis types of applications in which computations are often performed before display, a dummy component may have to be made visible in order to use the MediaTracker class. There can also be applications in which graphical user interfaces are separated from the image loading classes. In such cases, MediaTracker will force the use of a GUI component in the image loading classes.

4. Difficulty with imageUpdate() Method
The imageUpdate() method has to trigger appropriate actions depending on the status. So, the imageUpdate() method becomes the center of control whenever image related asynchronous operations are involved. This may involve some programming difficulties in large and complex applications such as:

  • A number of actions may have to be performed in different objects when certain status information is available. Because of the asynchronous nature, these objects may be in different states. Managing these will be difficult because the state of the objects has to be known. This would require maintaining state variables in each object and triggering actions based on their state.
  • If several images are to be loaded together, it is often necessary to do different things with different images. For example, you may need to display a few images in an image set, but perform analysis on all the images in the set. This would require the imageUpdate() method to identify the image object and take appropriate actions depending on the object.
  • Typically, in an applet or a small application, a single object handles image loading and drawing. The ImageObserver interface is implemented in that object itself. In other words, the same object will have the imageUpdate() method. However, in a large application, loading may be performed by one object and drawing may be performed in another. The status notification may go to different objects and these objects will have to be aware of what actions are to be performed. A solution would be to create a separate ImageObserver object where the loading and drawing status related to an image is reported.

    5. Scattered Image Loading APIs
    As we have seen in the Image Loading Stages section, a number of APIs are required to load images. These are scattered over different classes in the java.awt and java.awt.image packages. This would mean a longer learning curve to understand image loading. What is desirable, therefore, is a single class that encapsulates all the image loading functionality. The next section describes such a class.

    A Multi Purpose Image Loading Class
    An image loading class called ScreenImage was developed to solve some of the problems discussed in the previous section. Unlike MediaTracker, it does not require a visible AWT component. The ScreenImage class implements the ImageObserver interface and its functionality centered around the imageUpdate() method. Clients can register with the ScreenImage class for callback and the imageUpdate() method will notify the registered objects at different stages of image loading. Because of this callback, the ScreenImage eases the programming difficulty involved in using the imageUpdate() method by allowing the clients themselves to perform appropriate actions.

    The ScreenImage class has a number of APIs that help to load images, fetch properties, and extract pixels. It also provides the prepareImage() methods to enable the applications to load images in advance. In addition, it saves image properties such as width and height, and pixels' values if extracted. The client applications can monitor the progress in loading by checking the loadStatus variable. Thus, a number of related image loading functions is available under one class. The complete code listing for ScreenImage class is shown in Listing 3. A ScreenImage object needs to be constructed for every image that is going to be loaded. The client application is neither required to be of the type component nor is it required to implement the ImageObserver interface. However, it has to implement the Callback interface, which contains just one method called performCallback(int satus), shown in Listing 4.

    The registered clients receive a callback notification whenever the loading status changes. Unlike the imageUpdate() method, this method is invoked when a certain loading status is attained. Currently, it is invoked on the following occasions:

  • Height and width available
  • Image is ready for drawing
  • Pixel values are available
  • Error condition
    A Sample Application/applet.

    A sample application/applet was developed to illustrate the use of ScreenImage class. It is used to load images for three different types of applications. Figure 1 shows the Frame that runs the application/applet.

    It can display images in four tiled viewports, run animation, and extract pixels. Images can be selected using the ImageSelector Panel. Animation can be performed in any of the four windows. As the animation loop is running, it can be dynamically switched to other ports by selecting a desired viewport. The pixel computation can be performed without even displaying images. Some of the methods used in this application/applet are explained next.

    Displaying Images
    The method shown in Listing 5 can be used in any application to load an image. This method can be a part of the image viewing class. The imageTable variable is a HashTable which saves the ScreenImage and its id. This is a convenient way of keeping track of whether a ScreenImage object has been created for a given image. The fileList variable contains the list of image file names. In case of applets, the setUrlInfo() method can be used.

    Listing 6 is the program snippet to display an image. The actual image display takes place in a class called ImageCanvas.

    All the methods in Listings 7, 8, and 9 belong to the ImageCanvas class, which performs image painting. In the ImageCanvas class, scnImage is an instance variable. The method in Listing 7 sets that variable. This method first removes itself from the callback list of the previous ScreenImage and then registers with the new ScreenImage object.

    The imagePaint() methods shown in Listing 8 are used for painting images. The actual painting is done by the update() method. The drawOffScren() method, which is not shown here, implements the double buffering.

    The method shown in Listing 9 is called by the ScreenImage method to notify the image loading status. The action is performed only when an image is ready (or when there is an error, but not shown in the code).

    Extracting Pixels
    A method for extracting pixels is shown in Listing 10. Pixel values can be extracted without even displaying the image. The code is similar to the loadAnImage() method, except for the fetchPixels() method. In this method, a delay is added between load() and fetchPixels() method. Without this delay, loadPixels() will hang in some platforms.

    The method in Listing 11 is called by the ScreenImage object. It checks for the PIXELS_AVAILABLE status and invokes a method to generate statistics.

    Summary & Conclusions
    The asynchronous nature of Java's image loading may pose problems, including image painting and animation problems, and difficulty in using the imageUpdate() method. The ScreenImage class described here not only solves some of the problems but can also be used in a variety of applications. It encapsulates a number of image loading-related methods that are scattered over different AWT classes. In addition, it keeps track of image loading and saves image pixels. Just like MediaTracker, it simplifies the programming involved in image loading synchronization. If an application has a large number of images involved for simple viewing or animation, using the ScreenImage class may not be as desirable as it may result in unnecessary code overhead.

    References
    1. Cohen et al, Professional Java Programming, Wrox Press, September 1996.
    2. Graham, Jim, Image loading related articles posted to comp.lang.java. usenet group.
    3. java.awt and java.awt.image API Documentation.

    About Lawrence Rodrigues
    Lawrence Rodrigues is a senior consultant with Compuware Corp., Milwaukee. He has been developing Java applets and applications, is a contributor to the book "Professional Java: Fundamentals," by Wrox Press, and is also a judge at JARS. Besides Java, his current interests include Image Visualization and Analysis, Computational Geometry and Image Data Compression.

  • In order to post a comment you need to be registered and logged in.

    Register | Sign-in

    Reader Feedback: Page 1 of 1

    Presentation Slides
    Security, data privacy, reliability and regulatory compliance are critical factors when evaluating whether to move business applications fro...
    "When you think about the data center today, there's constant evolution, The evolution of the data center and the needs of the consumer of t...

    Register and Save!
    Save $405
    on your “Golden Pass”!
    before October 30, 2017!
    Call 201.802.3020


    Santa Clara Call for Papers Open
    Submit
    submit your speaking proposal
    for the upcoming WebRTC Summit in
    Santa Clara!
    [Oct 31- Nov 2, 2017]


    WebRTC Summit 2017 West
    Sponsorship Opportunities
    Please Call
    201.802.3021
    events (at) sys-con.com
    Sponsorship opportunities are now open for WebRTC Summit 2017 Santa Clara, Oct 31-Nov 2, 2017, at the Santa Clara Convention Center in Santa Clara, CA, and for WebRTC Summit 2018 New York, June 5-7, 2018, at the Javits Center in New York, NY. For sponsorship, exhibit opportunities and show prospectus, please contact Carmen Gonzalez, carmen (at) sys-con.com.



    WebRTC Summit Silicon Valley All-Star Speakers Include

    MATTHIEU
    Octoblu

    MAHADEV
    Cisco

    MCCARTHY
    Bsquare

    FELICIANO
    AMDG

    PAUL
    VenueNext

    SMITH
    Eviot

    BEAMER
    goTraverse

    GETTENS
    goTraverse

    CHAMBLISS
    ReadyTalk

    HERBERTS
    Cityzen Data

    REITBAUER
    Dynatrace

    WILLIAM-
    SON

    Cloud
    Computing

    SCHMARZO
    EMC

    WOOD
    VeloCloud

    WALLGREN
    Electric Cloud

    VARAN-
    NATH

    GE

    SRIDHARA-
    BALAN

    Pulzze

    METRIC
    Linux

    MONTES
    Iced

    ARIOLA
    Parasoft

    HOLT
    Daitan

    CUNNING-
    HAM

    ReadyTalk

    BEDRO-
    SIAN

    Cypress

    NAMIE
    Cisco

    NAKA-
    GAWA

    Transparent
    Cloud

    SHIBATA
    Transparent
    Cloud

    BOYD
    Neo4j

    WARD
    DWE

    MILLER
    Covisint

    EVAVOLD
    Covisint

    MEINER
    Oracle

    MEEHAN
    Esri

    WITECK
    Citrix

    LIANG
    Rancher Labs

    BUTLER
    Tego

    ROWE
    IBM Cloud

    SKILLERN
    Intel

    SMITH
    Numerex
    WebRTC Summit New York All-Star Speakers Include

    CLELAND
    HGST

    VASILIOU
    Catchpoint

    WALLGREN
    Electric Cloud

    HINCH-
    CLIFFE

    7Summits

    DE SOUZA
    Cisco

    RANDALL
    Gartner

    ARM-
    STRONG

    AppNeta

    SMALL-
    TREE

    Cazena

    MCCARTHY
    Bsquare

    DELOACH
    Infobright

    QUINT
    Ontegrity

    MALAU-
    CHLAN

    Buddy Platform

    PALIOTTA
    Vector

    MITRA
    Cognizant

    KOCHER
    Grey Heron

    PAPDO
    POULOS

    Cloud9

    HARLAN
    Two Bulls

    GOLO
    SHUBIN

    Bit6

    PROIETTI
    Location
    Smart

    MARTIN
    nfrastructure

    MOULINE
    Everbridge

    MARSH
    Blue Pillar

    PARKS
    SecureRF

    PEROTTI
    Plantronics

    HOFFMAN
    EastBanc

    WATSON
    Trendalyze

    BENSON-
    OFF

    Unigma

    SHAN
    CTS

    MATTELA
    Redpine

    GILLEN
    Spark
    Coginition

    SOLT
    Netvibes

    BERN-
    ARDO

    GE Digital

    ROMAN-
    SKY

    TrustPoint

    BEAMER
    GoTransverse

    LESTER
    LogMeIn

    PONO
    -MAREVA

    Google

    SINGH
    Sencha

    CALKINS
    Amadeus

    KLEIN
    Rachio

    HOASIN
    Aeris

    SARKARIA
    PHEMI

    SPROULE
    Metavine

    SNELL
    Intel

    LEVINE
    CytexOne

    ALLEN
    Freewave

    MCCAL-
    LUM

    Falconstor

    HYEDT
    Seamless

    WebRTC Summit Silicon Valley All-Star Speakers Include

    SCHULZ
    Luxoft

    TAM-
    BURINI

    Autodesk

    MCCARTHY
    Bsquare

    THURAI
    SaneIoT

    TURNER
    Cloudian

    ENDO
    Intrepid

    NAKAGAWA
    Transparent

    SHIBATA
    Transparent

    LEVANT-LEVI
    testRTC

    VARAN NATH
    GE

    COOPER
    M2Mi

    SENAY
    Teletax

    SKEEN
    Vitria

    KOCHER
    Grey Heron

    GREENE
    PubNub

    MAGUIRE
    HP

    MATTHIEU
    Octoblu

    STEINER-
    JOVIC

    AweSense

    LYNN
    AgilData

    HEDGES
    Cloudata

    DUFOUR
    Webroot

    ROBERTS
    Platform

    JONES
    Deep

    PFEIFFER
    NICTA

    NIELSEN
    Redis

    PAOLAL-
    ANTORIO

    DataArchon

    KAHN
    Solgenia

    LOPEZ
    Kurento

    KIM
    MapR

    BROMHEAD
    Instaclustr

    LEVINE
    CytexOne

    BONIFAZI
    Solgenia

    GORBA-
    CHEV

    Intelligent
    Systems

    THYKAT-
    TIL

    Navisite

    TRELOAR
    Bebaio

    SIVARAMA-
    KRISHNAN

    Red Hat
    Cloud Expo New York All-Star Speakers Included

    DE SOUZA
    Cisco

    POTTER
    SafeLogic

    ROBINSON
    CompTIA

    WARUSA
    -WITHANA

    WSO2 Inc

    MEINER
    Oracle

    CHOU
    Microsoft

    HARRISON
    Tufin

    BRUNOZZI
    VMware

    KIM
    MapR

    KANE
    Dyn

    SICULAR
    Basho

    TURNER
    Cloudian

    KUMAR
    Liaison

    ADAMIAK
    Liaison

    KHAN
    Solgenia

    BONIFAZI
    Solgenia

    SUSSMAN
    Coalfire

    ISAACSON
    RMS

    LYNN
    CodeFutures

    HEABERLIN
    Windstream

    RAMA
    MURTHY

    Virtusa

    BOSTOCK
    IndependenceIT

    DE MENO
    CommVault

    GRILLI
    Adobe

    WILLIAMS
    Rancher Labs

    CRISWELL
    Alert Logic

    COTY
    Alert Logic

    JACOBS
    SingleHop

    MARAVEI
    Cisco

    JACKSON
    Softlayer

    SINGH
    IBM

    HAZARD
    Softlayer

    GALLO
    Softlayer

    TAMASKAR
    GENBAND

    SUBRA
    -MANIAN

    Emcien

    LEVESQUE
    Windstream

    IVANOV
    StorPool

    BLOOM-
    BERG

    Intellyx

    BUDHANI
    Soha

    HATHAWAY
    IBM Watson

    TOLL
    ProfitBricks

    LANDRY
    Microsoft

    BEARFIELD
    Blue Box

    HERITAGE
    Akana

    PILUSO
    SIASMSP

    HOLT
    IBM Cloudant

    SHAN
    CTS

    PICCIN-
    INNI

    EMC

    BRON-
    GERSMA

    Modulus

    PAIGE
    CenturyLink

    SABHIKHI
    Cognitive Scale

    MILLS
    Green House Data

    KATZEN
    CenturyLink

    SLOPER
    CenturyLink

    SRINIVAS
    EMC

    TALREJA
    Cisco

    GORBACHEV
    Systems Services Inc.

    COLLISON
    Apcera

    PRABHU
    OpenCrowd

    LYNN
    CodeFutures

    SWARTZ
    Ericsson

    MOSHENKO
    CoreOS

    BERMING-
    HAM

    SIOS

    WILLIS
    Stateless Networks

    MURPHY
    Gridstore

    KHABE
    Vicom

    NIKOLOV
    GetClouder

    DIETZE
    Windstream

    DALRY-
    MPLE

    EnterpriseDB

    MAZZUCCO
    TierPoint

    RIVERA
    WHOA.com

    HERITAGE
    Akana

    SEYMOUR
    6fusion

    GIANNETTO
    Author

    CARTER
    IBM

    ROGERS
    Virtustream
    Cloud Expo Silicon Valley All-Star Speakers

    TESAR
    Microsoft

    MICKOS
    HP

    BHARGAVA
    Intel

    RILEY
    Riverbed

    DEVINE
    IBM

    ISAACSON
    CodeFutures

    LYNN
    HP

    HINKLE
    Citrix

    KHAN
    Solgenia

    SINGH
    Bigdata

    BEACH
    SendGrid

    BOSTOCK
    IndependenceIT

    DE SOUZA
    Cisco

    PATTATHIL
    Harbinger

    O'BRIEN
    Aria Systems

    BONIFAZI
    Solgenia

    BIANCO
    Solgenia

    PROCTOR
    NuoDB

    DUGGAL
    EnterpriseWeb

    TEGETHOFF
    Appcore

    BRUNOZZI
    VMware

    HICKENS
    Parasoft

    KLEBANOV
    Cisco

    PETERS
    Esri

    GOLDBERG
    Vormetric

    CUMBER-
    LAND

    Dimension

    ROSENDAHL
    Quantum

    LOOMIS
    Cloudant

    BRUNO
    StackIQ

    HANNON
    SoftLayer

    JACKSON
    SoftLayer

    HOCH
    Virtustream

    KAPADIA
    Seagate

    PAQUIN
    OnLive

    TSAI
    Innodisk

    BARRALL
    Connected Data

    SHIAH
    AgilePoint

    SEGIL
    Verizon

    PODURI
    Citrix

    COWIE
    Dyn

    RITTEN-
    HOUSE

    Cisco

    FALLOWS
    Kaazing

    THYKATTIL
    TimeWarner

    LEIDUCK
    SAP

    LYNN
    HP

    WAGSTAFF
    BSQUARE

    POLLACK
    AOL

    KAMARAJU
    Vormetric

    BARRY
    Catbird

    MENDEN-
    HALL

    SUPERNAP

    SHAN
    KEANE

    PLESE
    Verizon

    BARNUM
    Voxox

    TURNER
    Cloudian

    CALDERON
    Advanced Systems

    AGARWAL
    SOA Software

    LEE
    Quantum

    OBEROI
    Concurrent, Inc.

    HATEM
    Verizon

    GALEY
    Autodesk

    CAUTHRON
    NIMBOXX

    BARSOUM
    IBM

    GORDON
    1Plug

    LEWIS
    Verizon

    YEO
    OrionVM

    NAKAGAWA
    Transparent Cloud Computing

    SHIBATA
    Transparent Cloud Computing

    NATH
    GE

    GOKCEN
    GE

    STOICA
    Databricks

    TANKEL
    Pivotal Software


    Testimonials
    This week I had the pleasure of delivering the opening keynote at Cloud Expo New York. It was amazing to be back in the great city of New York with thousands of cloud enthusiasts eager to learn about the next step on their journey to embracing a cloud-first worldl."
    @SteveMar_Msft
    General Manager of Window Azure
     
    How does Cloud Expo do it every year? Another INCREDIBLE show - our heads are spinning - so fun and informative."
    @SOASoftwareInc
     
    Thank you @ThingsExpo for such a great event. All of the people we met over the past three days makes us confident IoT has a bright future."
    Yasser Khan
    CEO of @Cnnct2me
     
    One of the best conferences we have attended in a while. Great job, Cloud Expo team! Keep it going."

    @Peak_Ten


    Who Should Attend?
    Senior Technologists including CIOs, CTOs & Vps of Technology, Chief Systems Engineers, IT Directors and Managers, Network and Storage Managers, Enterprise Architects, Communications and Networking Specialists, Directors of Infrastructure.

    Business Executives including CEOs, CMOs, & CIOs , Presidents & SVPs, Directors of Business Development , Directors of IT Operations, Product and Purchasing Managers, IT Managers.

    Download Cloud Expo Show Guide
    Cloud Expo Show Guide
    Download PDF

    Join Us as a Media Partner - Together We Can Rock the IT World!
    SYS-CON Media has a flourishing Media Partner program in which mutually beneficial promotion and benefits are arranged between our own leading Enterprise IT portals and events and those of our partners.

    If you would like to participate, please provide us with details of your website/s and event/s or your organization and please include basic audience demographics as well as relevant metrics such as ave. page views per month.

    To get involved, email Patricia Henderson at patricia@sys-con.com.

    Digital Transformation Blogs
    We are seeing a major migration of enterprises applications to the cloud. As cloud and business use of real time applications accelerate, legacy networks are no longer able to architecturally support cloud adoption and deliver the performance and security required by highly distributed enterprises. These outdated solutions have become more costly and complicated to implement, install, manage, and maintain.SD-WAN offers unlimited capabilities for accessing the benefits of the cloud and Internet. SD-WAN helps enterprises to take advantage of the exploding landscape of cloud applications and serv...
    In this presentation, you will learn first hand what works and what doesn't while architecting and deploying OpenStack. Some of the topics will include:- best practices for creating repeatable deployments of OpenStack- multi-site considerations- how to customize OpenStack to integrate with your existing systems and security best practices.
    Security, data privacy, reliability and regulatory compliance are critical factors when evaluating whether to move business applications from in-house client hosted environments to a cloud platform. In her session at 18th Cloud Expo, Vandana Viswanathan, Associate Director at Cognizant, In this session, will provide an orientation to the five stages required to implement a cloud hosted solution validation strategy.