Welcome!

Web 2.0 Authors: Carmen Gonzalez, Trevor Parsons, Roger Strukhoff, Lori MacVittie, Travis Olague

Related Topics: AJAX & REA, Java

AJAX & REA: Article

Developing Rich Client Applications Using Swing - II

A comparison of available solutions

In Part 1 of this article, I introduced rich client development, available architectures for developing rich client applications based on the Swing toolkit, and technologies that could be used to make development more productive.

In this second part, I'll compare the most popular IDEs and evaluate them with an eye to Swing development for rich client applications.

Swing-based Rich Clients: Support for Java IDEs
There are many development environments available for the Java platform, each of them provides all sorts of features that can be applied in developing various kinds of Java applications - Web applications, desktop applications, mobile applications, SOA, etc. - and use the various Java distributions - Java EE, Java SE, Java ME.

In this article Java IDE evaluation is restricted to rich client application development based on a Swing front-end. Hence in this IDE evaluation, only features connected to Swing-based rich client development are taken into consideration:

  • UI designer availability for visual editing of forms based on the Swing toolkit (JFrame, JInternalFrame, JDialog, JPanel, or other graphical containers); using a visual editor to create and modify forms simplifies and speeds these activities, source code is less error-prone (since code can be auto-generated by the UI designer) when compared to code written by hand.
  • JavaBeans specifications compliance: specification compliance by the IDE UI designer makes it more suitable for the visual development of forms, allowing the adoption in the IDE (in the UI designer of the IDE) of advanced graphics components based on the Swing toolkit, resulting in the ability to visually define graphics component properties in a fast and easy way that is less error-prone.
  • Data binding mechanism support
  • Availability of a rich set of graphics components based on Swing
  • Data retrieval mechanism can "connect" graphics components or data binding layer with the (remote) data access layer.
  • Layers or components that simplify client-side development of Swing-based rich client applications, such as the Swing Application Framework.
  • Server-side libraries for transactions management and data access, such as Spring, EJB 1.x/2.x/3.0, JPA/TopLink Essentials, Hibernate, TopLink, and iBatis.

The IDEs evaluated in this article are Eclipse 3.x combined with some plug-ins, IntelliJ Idea 7.0, JBuilder 2008, Oracle JDeveloper 11g, MyEclipse, NetBeans 6.0, and IBM RAD 7.x.

Besides these IDEs, there are other products, some open source and others commercially licensed, that can be employed for the sole task of GUI construction. Being limited to front-end development, they are not real, complete development environments. But some of them like JFormDesigner, FormLayoutMaker, and Floam are quite valuable. However, they won't be considered here. I am going to concentrate on integrated development environments.

Eclipse 3.x
Eclipse is an open source IDE that can be used to develop both open source and commercial solutions. For this platform some portals are available; they collect plug-ins that extend the Eclipse IDE's capabilities, such as http://www.eclipseplug-incentral.com.

Rich client development in Eclipse is clearly oriented to SWT and RCP technologies. Its native UI designer, called Visual Editor, can be used to develop front-ends based on Swing too. Visual Editor is not fully compliant with JavaBeans specifications so it's not particularly suitable for developing complex GUIs based on Swing, especially if the UI designer is used for visual editing third-party graphics components too.

Window Builder/Swing Designer and the Jigloo plug-in are two valuable plug-ins for Eclipse that provide an excellent UI designer for Swing development. Window Builder is a commercial solution, whereas Jigloo is released under dual licenses: free for open source projects and a non-free commercial licence.

Eclipse assessment is consequently based not only on an Eclipse-based platform but also by taking the use of these two plug-ins into account.

Jigloo Plug-in: UI Designer & JavaBeans Specifications Compliance
Jigloo performs round-tripping of changes between the graphics components and the source code: when developers visually modify graphics components, they can see the modifications reflected in the source code; conversely, when they change the source code, they can see the same changes applied to the graphics components. UI designer quality is excellent. Both standard Swing components and third-party components are correctly rendered and edited by fully supporting the JavaBeans specification.

The versatility of this plug-in is really high. It can optionally generate the .form descriptors used in the NetBeans IDE and its UI designer can recognize and interpret source code included in several alternative methods, such as initGUI, initComponents, initialize, jbInit, open, createPartControl, createContents, createControl, and createDialogArea. This makes Jigloo compatible with GUI source code created in other IDEs.

Jigloo's UI designer automatically generates source code related to events handling for input controls and simplifies layout definition. Several recent layout managers are recognized: the GroupLayout included in Java 1.6, the FormLayout included in the JGoodies suite, and the ad hoc layout manager, AnchorLayout, that can freely arrange a graphics control by specifying its anchor as in other non-Java IDEs.

Jigloo Plug-in: Layers or Components That Simplify Client-side Development
Starting from the Eclipse menu, it is possible to use Jigloo's wizards to create all the graphics objects provided with Swing: JApplet, JFrame, JInternalFrame, JDialog, and JPanel or create a generic class that extends a graphics container and see it in the UI designer.

Jigloo supports the Swing Application Framework to create the skeleton of a Swing application fast and customize an application main frame in terms of a menu bar and toolbar.

It also includes a wizard to generate source code for a grid component of the OpenSwing suite, starting from a value object definition to use as a container for the grid's row, instead of using classic TableModel and JTable objects.

Window Builder Plug-in/Swing Designer: UI Designer and JavaBeans Specifications Compliance
Swing Designer is as good as the Jigloo plug-in. It round-trips changes between the graphics components and the source code, fully supports JavaBeans specifications, and recognizes source code related to the GUI created using other Java IDEs. It automatically generates source code related to events handling for input controls and simplifies layout definition. GroupLayout and FormLayout layout managers are supported too.

Its UI designer can visually define the menu bar content of the form in edit.

Window Builder Plug-in/Swing Designer: Layers or Components That Simplify Client-side Development
As for the Jigloo plug-in, Swing Designer extends the Eclipse menu by providing wizards for creating all graphics Swing containers: JApplet, JFrame, JInternalFrame, JDialog, JPanel, or creating a generic class extending a base Swing container.

Data Binding Mechanism Support
Eclipse does not provide any data binding mechanism for the Swing toolkit as well as Jigloo and Window Builder plug-ins. However it's possible to include in Eclipse's project and external data binding library, such as Beans Binding or JGoodies Bindings, but this IDE doesn't support them directly: there's no wizard to automate code generation related to binding, so using data binding libraries means writing code by hand, with the exception of the OpenSwing suite that embeds a data binding mechanism directly in its graphics components and in this way the UI designer of two plug-ins described above can be used to visually bind components to the data model without manually writing code.

Availability and Support of a Rich Set of Graphics Components Based on Swing and Data Retrieval Mechanisms
Both plug-ins seem to supply complete compliance with JavaBeans specifications and this lets us include graphics components from third-party libraries: JGoodies Swing Suite, JIDE, Kiwi, L2FProd.com Common Components, and OpenSwing are all operable inside the UI designer provided with Jigloo and Window Builder plug-ins.

In the Eclipse base platform or the plug-ins described above there is no data retrieval mechanism that could simplify remote data retrieval, except for the OpenSwing graphics components library, that can be used in combination with the two plug-ins and retrieves a list of JavaBeans or a single JavaBean from server-side layers like Spring or a Java servlet via HTTP.

Server-side Libraries for Transactions Management and Data Access
One of the strongest points of Eclipse platform is the availability of a rich set of open source and commercial Eclipse plug-ins, tools, and products that enhance the entire software development life-cycle for this platform. A lot of these plug-ins are oriented to server-side facets, such as:

  • HiberObjects - define a data model or import it from database tables and relations and manage the entity persistence layer based on JPA or Hibernate
  • Dali JPA Tools - these components (embedded in WTP 2.0 - Eclipse Web Tools Platform) build extensible frameworks and exemplary tools for defining and editing object-relational (O/R) mappings for EJB 3.0 Java Persistence API (JPA) Entities. JPA mapping support focuses on minimizing the complexity of mapping by creating and automating initial mapping wizards.
    It's interesting to note that the Eclipse Persistence Services Project (EclipseLink) provides the reference implementation for the JPA 2.0 (JSR 317) specification. This project is based on TopLink ORM, a tool originally created by Oracle and donated to the EclipseLink project.
  • SpringIDE - supports a list of Spring bean config files and sets of bean config files by providing an XML editor for Spring bean configuration files, a wizard for creating a new Spring project, and support for Spring AOP.
  • Hibernate Tools for Eclipse and Ant - a suite of Eclipse plug-ins for Hibernate 3.0 combined with a unified Ant task for integration into the build cycle. Hibernate Tools is a core component of JBoss Tools and hence part of JBoss Developer Studio. The following features are available in Eclipse:
    -Mapping Editor:
    an editor for Hibernate XML mapping files, supporting auto-completion and syntax highlighting. The editor supports semantic auto-completion for class names, property/field names, table names, and column names.
    -Console:
    configures database connections, provides visualization of classes and their relationships, and lets you execute HQL queries interactively against your database and browse the query results.
    -Reverse Engineering:
    a database reverse-engineering tool that can generate domain model classes and Hibernate mapping files, annotated EJB3 entity beans, or HTML documentation.
    -Several wizards are provided, including wizards to generate Hibernate configuration (cfg.xml) files and Hibernate console configurations quickly.
    -Ant task: a unified Ant task that runs schema generation, mapping generation, or Java code generation as part of the build.

IntelliJ Idea 7.0
This commercial IDE is available with several licences and can be freely used when developing open source projects. Upfront, this IDE provides a set of integrated re-factoring tools that let programmers quickly redesign their code and a number of features intended to accelerate development.

UI Designer Availability & JavaBeans Specifications Compliance
IntelliJ Idea includes an UI designer for Swing. Its JavaBeans specifications support seems to be rather limited: some properties of the BeanDescriptor class are not recognized by the UI designer (e.g., "containerDelegate" and "layoutManager") and this narrows the possibility of including third-party libraries of graphics components and using them directly with the visual editor.

Its UI designer automatically generates source code related to events management for input controls and simplifies layout definition; FormLayout layout manager is also recognized. And the UI designer can work with GUI source code created in other IDEs.

There is a portal that collects plug-ins for IntelliJ Idea that extend its capabilities. One of them is JFormDesigner, a powerful UI designer that can be used to design forms based on Swing.

A feature of the native IntelliJ Idea UI designer not always appreciated is that the source code generated starting from the visual form is neither accessible nor visible as Java source code (as in other non-Java IDEs, such as Visual Basic). Since it is written in an external .form descriptor file, the GUIs developed are only good inside this IDE, because .form-generated files are usually not recognized in other IDEs.

Data Binding Mechanism Support
IntelliJ Idea does not provide real support for data binding mechanisms. It is still possible to include some third-party libraries related to data binding (e.g., Beans Binding or JGoodies Bindings) in projects created with the IDE, but the IDE doesn't recognize them directly, so their use involves writing code. As an alternative, IntelliJ Idea offers a template to realize a sort of binding between input controls and a specific JavaBean by automatically generating source code related to getter and setter methods that store data from input controls to the JavaBean and from the JavaBean to the input controls. This is not real data binding since there is no real-time synchronization between view and data model, or data validation or events firing when the data model changes.

Availability and Support for a Rich Set of Graphics Components Based on Swing and Data Retrieval Mechanisms
The JMatter framework, previously touched on when describing advanced graphics components, can be used to develop two-tier rich client applications. It includes a visual editor for IntelliJ Idea named UltraViolet for defining a data model, which is required before creating the front-end layer.

Since its JavaBean specifications support is not complete, not all third-party graphics components can be included and used directly in its UI designer. Only suites that do not make close use of these specifications can be employed in the designer: JGoodies Swing Suite, JIDE, Kiwi, and L2FProd.com Common Components.

No data retrieval mechanism is available for IntelliJ Idea model.

Layers or Components That Simplify Client-side Development
Starting from the IntelliJ Idea menu, it's possible to create only one visual object, the form. This visual object can then be nested in other forms.

Server-side Libraries for Transactions Management and Data Access
IntelliJ Idea release 7 provides an almost complete set of wizards concerned with the most popular server-side layers and tools, such as Web Services, Hibernate, Java EE Persistence, and Spring 2.0.7. With these wizards the configuration phase of these tools/layers is substantially simplified and faster (mapping, XML file creation, and source code generation).

JBuilder 2008
Starting with the 2007 release, JBuilder has been based on the Eclipse 3.3 development platform and on the Web Tool Platform (WTP) 2.0 layer.

This IDE is available in three editions: Turbo, Professional, and Enterprise. The Turbo edition is free, but lacks a worthy UI designer for Swing and other wizards that could simplify and raise the productivity of rich client application development. The other editions aren't free and include an excellent plug-in for Swing-based development named Swing Designer, previously mentioned when describing the Eclipse platform.

In the rest of this section, the free (useless) edition is ignored.

UI Designer Availability and JavaBeans Specifications Compliance, Layers or Components That Simplify Client-side Development
JBuilder 2008 Professional/Enterprise includes a Window Builder plug-in for visually editing forms: remarks made in the Eclipse section about this plug-in are valid for these JBuilder editions too.

Data Binding Mechanism Support, Availability and Support of a Rich Set of Graphics Components Based on Swing and Data Retrieval Mechanisms
Assessments about data binding and data retrieval and components support reported in the Eclipse section are valid for JBuilder too.

Server-side Libraries for Transactions Management and Data Access
Besides what offered by the Eclipse IDE, JBuilder provides additional wizards to simplify server-side development when working with EJB 2/3, JPA (Hibernate/TopLink), Web Services, and Spring MVC. These technologies can be managed in JBuilder using both visual editors and managing XML/source files.

Oracle JDeveloper 11g
JDeveloper is a free IDE, having a user interface akin to the user interface of past versions of JBuilder (prior to 2007 release), as it was born starting from an old version of JBuilder.

UI Designer Availability and JavaBeans Specifications Compliance
JDeveloper inherits from past versions of JBuilder a high-quality UI designer that seems to be faithful to JavaBeans specifications and this aids the development of rich client applications that use third-party components that depend on these specifications.

JDeveloper's UI designer automatically generates source code related to events handling of input controls and simplifies layout definition in the visual editor.

Layers or Components That Simplify Client-side Development and Data Binding/Data Retrieval Mechanisms
Starting from the JDeveloper menu, it's possible to create graphics objects provided with Swing: frames, internal frames, dialogs, and panels. It is also possible to create from scratch a frame supplied with a menu bar, toolbar, status bar and about window.

One of the most important features provided in JDeveloper is ADF. ADF Business Components can be used to define a data model to bind to forms or grids through a collection of wizards and visual editors that abstract the E/R model and map it to a set of XML descriptors and from them create the front-end layer based on ADF Swing that provides a suite of graphics components based on Swing toolkit. These components can connect to data model layer. ADF includes its own data binding and data retrieval mechanism placed between the front-end and data access layer. ADF Swing creates MDI-based front-ends and provides many graphics components: form, grid, tree+grid, master-detail frames, navigation bars to connect to forms or grids, status bar, combo-box, radio button, image panels, and charts panes.

Availability and Support of a Rich Set of Graphics Components Based on Swing
JDeveloper is highly compliant with JavaBeans specifications and can use graphics components from third-party libraries. JGoodies Swing Suite, JIDE, Kiwi, L2FProd.com Common Components and OpenSwing are all operable inside its UI designer. Apart from that, JDeveloper provides its own solution based on ADF technology.

Server-side Libraries for Transactions Management and Data Access
JDeveloper speeds up the server-side development of applications through ADF. Moreover it offers various wizards to develop server-side components based on EJB 2/3, JPA (Oracle TopLink 11g), and Web Services. An interesting feature of this IDE is Oracle Business Rules, which defines business rules that rules engines can use to bind combinations of facts, variables, and functions to the execution of actions in the application.

MyEclipse 6.0
MyEclipse is a non-free distribution of Eclipse (with a low license price of less than $100) that embeds both open source solutions available also with standard Eclipse platform and distinct solutions.

There are two editions of this IDE, a standard edition and a professional edition.

UI Designer Availability and JavaBeans Specifications Compliance, Layers or Components That Simplify Client-side Development
Remarks made in the Eclipse section about the need for plug-in adoption to improve the UI designer are equally valid for this IDE. The professional edition of MyEclipse includes the Matisse Plug-in, an Eclipse version of the UI designer in NetBeans. This plug-in gives Eclipse the same capabilities as NetBeans's Matisse visual editor (visual editing of forms, round-tripping of changes between the graphics components and the source code, the layout manager's visual support, the simplification of events handling, etc.).

Starting from the IDE menu, it is possible to create graphics objects provided with Swing and AWT, JApplet, JFrame, JDialog, and JPanel, or create the skeleton of an MDI application.

Data Binding Mechanism Support, Availability and Support of a Rich Set of Graphics Components Based on Swing and Data Retrieval Mechanisms
Assessments about data binding, data retrieval, and components support reported in Eclipse section are valid for MyEclipse too. In Professional edition of MyEclipse, the availability of Matisse Plug-in and its high compatibility with JavaBeans specifications assures the adoption and use of third parties graphics components directly inside the UI designer.

Server-side Libraries for Transactions Management and Data Access
MyEclipse provides a suite of tools named Java Persistence Tools that can used with TopLink and Hibernate ORM tools and manage persistence based on JPA, EJB 3, Xdoclet, and the configuration of projects based on Spring. Visual support for database access is also provided (connectors for Oracle, SQL Server, MySQL, and Sybase). These tools extend what is already supplied by other plug-ins available for the Eclipse base platform.

NetBeans 6.x
NetBeans is an open source IDE that can be used to develop both open source and commercial applications. As with Eclipse, there exists a portal dedicated to plug-ins that extend the NetBeans base platform.

UI Designer and JavaBeans Specifications Compliance
NetBeans 6.x provides an UI designer called Matisse that updates source code when visual editing graphics components in the UI designer. The quality of the UI designer is excellent: both standard Swing and third-party components are correctly rendered and edited, thanks to its full support of JavaBeans specifications. Matisse automatically generates source code related to events handling for input controls and simplifies layout definition, included GroupLayout.

A questionable choice regards the use of .form XML files to describe the form content: Matisse does not directly change source code related to form content (i.e., code contained in initComponents method) except for single parts of generated code that can be customized via UI designer commands.

Another issue could be the layout manager automatically set by the UI designer for each graphics component dropped on the edited form: this setting overrides the previously set layout that the component just added could have set; this behavior does not encourage the adoption of third-party components libraries, if these components require specific layouts auto-set to operate correctly (anyway this behavior can be disabled from the NetBeans menu bar).

Layers or Components That Simplify Client-side Development
Starting from the NetBeans menu, it is possible to create graphics objects provided with Swing and AWT - JFrame, JInternalFrame, JDialog, JPanel - or create a generic class that extends a graphics container and see it in the UI designer.

The NetBeans menu creates SDI or MDI applications from scratch; it supports the Swing Application Framework and sets up the skeleton of a Swing application, including some base widgets, such as progress bar, status bar, menu bar, about window and optionally the creation of Master-Detail functionality.

Data Binding Mechanism Support
NetBeans provides wizards to create Master-Detail functionalities (grid+detail form) with support for CRUD operations (create, retrieve, update, delete), starting from a database connection, to realize two-tier client/server applications. With regard to client-side code generation, an editable JTable + detail panel is created; both components are then bound to POJO entities through the Beans Binding data binding mechanism that can be used with input fields (JTextField, etc.) or columns of JTable. Type conversion and data validation are also managed by the same mechanism. As regards data access code generation, JPA technology is exploited. Some objects are recognized (and updated using visual editors), including persistence.xml file, EntityManager initialization, the content of methods related to CRUD operations, and the code related to the data binding mechanism.

It is possible to manage the data binding mechanism for single input fields (JTextField) too by operating directly in the UI designer.

Availability and Support of a Rich Set of Graphics Components Based on Swing and Data Retrieval Mechanisms
The Matisse UI designer ensures high compatibility with JavaBeans specifications and the use of third-party graphics components directly inside the NetBeans UI designer. No data retrieval mechanism is provided.

Server-side Libraries for Transactions Management and Data Access
NetBeans embeds data persistence through JPA. Its menu provides wizards to create a data access and persistence layer. It configures database connections, PersistenceUnit objects, and Entity classes. Moreover, a context menu is available directly in the source code to insert the Persistence Unit and EntityManager objects and manage them through these wizards.

NetBeans 6.x is compliant with EJB 3.0/JPA specifications. Hence EJB and data persistence objects development is supported inside the IDE. Optionally GlassFish 2.x Application Server can be installed and connected to NetBeans to run EJB 3.0/JPA objects in the IDE by means of the TopLink Essentials reference implementation.

Web Services development is also supported and wizards for WSDL and Web Service client management are provided.

Starting with NetBeans 5.5, a plug-in called Spring NetBeans Module has been available to use with the Spring 2.0.x framework for visually editing Spring's XML configuration files and define controllers, bean names, and properties. In NetBeans 6.1 2.5 release of Spring is supported too.

The Hibernate Plug-in for NetBeans is another plug-in for NetBeans that can be used to define properties and relations visually for Hibernate-based development, simplify database schema generation, and generate mapping .hbm descriptor files.

RAD 7.x
IBM's Rational Application Developer for WebSphere Software (RAD) is a commercial IDE based on the Eclipse development platform.

UI Designer Availability and JavaBeans Specifications Compliance
RAD includes an UI designer named Rational Developer Visual Editor for Java that can be used to develop front-ends based on Swing. It round-trips changes between the graphics components and source code. Compliance with JavaBeans specifications is not complete. For instance, the "containerDelegate" property of the BeanDescriptor class is not recognized and this can limit the use of third-party graphics libraries directly inside the visual editor.

RAD's UI designer automatically generates source code related to events management for input controls and simplifies layout definition.

Data Binding Mechanism Support and Data Retrieval Mechanisms
RAD includes a data binding mechanism that can be managed directly from the UI designer by selecting an input control in the form currently in edit and by visually connecting it to one of the data sources supported by RAD: EJB, Web Services, or JavaBeans factory. The data binding mechanism can be used with text input fields, tables, and buttons or can be extended to custom input controls by defining custom "binders"; the binding mechanism distinguishes among: Swing Binders, Data Source, and Data Object; a Swing Binder connects a graphics component to a Data Object, a Data Object represents a set of basic data; the same Data Object can then be connected through Data Binders to more input controls; finally a Data Source represents a generator of Data Objects, based on Session Beans, Web Services, or JavaBeans.

Availability and Support of a Rich Set of Graphics Components Based on Swing
Since JavaBeans specifications support is not complete, not all third-party graphics components can be included and used directly in the UI designer of this IDE: only suites that do not make severe use of these specifications can be employed in the designer: JGoodies Swing Suite, JIDE, Kiwi, and L2FProd.com Common Components.

Layers or Components That Simplify Client-side Development
Starting from RAD menu, it is possible to create graphics objects provided with Swing and AWT: JFrame, JDialog, JPanel, and JApplet.

Server-side Libraries for Transactions Management and Data Access
Rational Application Developer includes visual editors for database connection handling, Web Services, and EJB construction to define Data Sources that can be connected to the data binding mechanism that binds Data Objects with Swing input controls.

Table 1 compares the main Java IDEs that support Swing.

For completeness, another popular IDE should be mentioned, JBoss Developer Studio, based on the Eclipse platform; however this IDE has not been compared to the others because it does not include features helpful for rich client application development based on Swing.

Conclusion
This comparison table lets us draw certain conclusions about the IDEs and their possible extensions relaying to the development of rich client applications based on Swing.

There aren't important differences among the IDEs selected, so perhaps ranking them is meaningless, since each one could give different weights to the criteria used to assess IDEs, according to one's own needs: one could give priority to the cost of the adopted solution (IDE + extensions, plug-ins, third-party libraries, etc.) or put productivity first and consider the investment in the development environment incidental or judge some of criteria examined here as trivial, such as the availability of a remote data retrieval mechanism in developing two-tier client/server applications.

Anyway, it's possible to group these IDEs in categories by distinguishing between open source products (or near open source, i.e., low licence costs) and commercial products. An organization should ask oneself why choose a commercial solution if the same features are available in open source solutions too: what added value does a commercial IDE provide? Greater productivity? Greater support or documentation? Superior development tools?

From our analysis it seems commercial solutions are not particularly superior to open source ones.

A features of the J2EE development platform is the availability of development environments that are more or less alike, which some people think has a positive effect, since it leads to greater competition, quality, and continuous improvement. On the other hand, it also scatters investment among alternative environments; a situation that doesn't happen with other non-Java IDEs, such as .NET, where Visual Studio.NET plays a dominant role.

The object of this article was to introduce the main IDEs for Swing development and offer a way to assess them and select the right product or set of products.

Resources

More Stories By Mauro Carniel

Mauro Carniel is a Software Architect at Sinesy. He has more than 10 years of enterprise software development experience utilizing JEE technologies, including JSP, JSF, Swing, EJB, JPA. He started focusing more on GUI-based client/server Java applications since 1998, then moved to web rich applications, including Sencha ExtJS and recently Mobile applications and Data Integration. He has a MSc in Information Technology from Udine University, Italy.

Comments (0)

Share your thoughts on this story.

Add your comment
You must be signed in to add a comment. Sign-in | Register

In accordance with our Comment Policy, we encourage comments that are on topic, relevant and to-the-point. We will remove comments that include profanity, personal attacks, racial slurs, threats of violence, or other inappropriate material that violates our Terms and Conditions, and will block users who make repeated violations. We ask all readers to expect diversity of opinion and to treat one another with dignity and respect.


@ThingsExpo Stories
The Internet of Things (IoT) is going to require a new way of thinking and of developing software for speed, security and innovation. This requires IT leaders to balance business as usual while anticipating for the next market and technology trends. Cloud provides the right IT asset portfolio to help today’s IT leaders manage the old and prepare for the new. Today the cloud conversation is evolving from private and public to hybrid. This session will provide use cases and insights to reinforce the value of the network in helping organizations to maximize their company’s cloud experience.
Cultural, regulatory, environmental, political and economic (CREPE) conditions over the past decade are creating cross-industry solution spaces that require processes and technologies from both the Internet of Things (IoT), and Data Management and Analytics (DMA). These solution spaces are evolving into Sensor Analytics Ecosystems (SAE) that represent significant new opportunities for organizations of all types. Public Utilities throughout the world, providing electricity, natural gas and water, are pursuing SmartGrid initiatives that represent one of the more mature examples of SAE. We have spoken with, or attended presentations from, utilities in the United States, South America, Asia and Europe. This session will provide a look at the CREPE drivers for SmartGrids and the solution spaces used by SmartGrids today and planned for the near future. All organizations can learn from SmartGrid’s use of Predictive Maintenance, Demand Prediction, Cloud, Big Data and Customer-facing Dashboards...
IoT is still a vague buzzword for many people. In his session at Internet of @ThingsExpo, Mike Kavis, Vice President & Principal Cloud Architect at Cloud Technology Partners, will discuss the business value of IoT that goes far beyond the general public's perception that IoT is all about wearables and home consumer services. The presentation will also discuss how IoT is perceived by investors and how venture capitalist access this space. Other topics to discuss are barriers to success, what is new, what is old, and what the future may hold.
Whether you're a startup or a 100 year old enterprise, the Internet of Things offers a variety of new capabilities for your business. IoT style solutions can help you get closer your customers, launch new product lines and take over an industry. Some companies are dipping their toes in, but many have already taken the plunge, all while dramatic new capabilities continue to emerge. In his session at Internet of @ThingsExpo, Reid Carlberg, Senior Director, Developer Evangelism at salesforce.com, to discuss real-world use cases, patterns and opportunities you can harness today.
All major researchers estimate there will be tens of billions devices – computers, smartphones, tablets, and sensors – connected to the Internet by 2020. This number will continue to grow at a rapid pace for the next several decades. With major technology companies and startups seriously embracing IoT strategies, now is the perfect time to attend @ThingsExpo in Silicon Valley. Learn what is going on, contribute to the discussions, and ensure that your enterprise is as "IoT-Ready" as it can be!
Noted IoT expert and researcher Joseph di Paolantonio (pictured below) has joined the @ThingsExpo faculty. Joseph, who describes himself as an “Independent Thinker” from DataArchon, will speak on the topic of “Smart Grids & Managing Big Utilities.” Over his career, Joseph di Paolantonio has worked in the energy, renewables, aerospace, telecommunications, and information technology industries. His expertise is in data analysis, system engineering, Bayesian statistics, data warehouses, business intelligence, data mining, predictive methods, and very large databases (VLDB). Prior to DataArchon, he served as a VP and Principal Analyst with Constellation Group. He is a member of the Boulder (Colo.) Brain Trust, an organization with a mission “to benefit the Business Intelligence and data management industry by providing pro bono exchange of information between vendors and independent analysts on new trends and technologies and to provide vendors with constructive feedback on their of...
Software AG helps organizations transform into Digital Enterprises, so they can differentiate from competitors and better engage customers, partners and employees. Using the Software AG Suite, companies can close the gap between business and IT to create digital systems of differentiation that drive front-line agility. We offer four on-ramps to the Digital Enterprise: alignment through collaborative process analysis; transformation through portfolio management; agility through process automation and integration; and visibility through intelligent business operations and big data.
There will be 50 billion Internet connected devices by 2020. Today, every manufacturer has a propriety protocol and an app. How do we securely integrate these "things" into our lives and businesses in a way that we can easily control and manage? Even better, how do we integrate these "things" so that they control and manage each other so our lives become more convenient or our businesses become more profitable and/or safe? We have heard that the best interface is no interface. In his session at Internet of @ThingsExpo, Chris Matthieu, Co-Founder & CTO at Octoblu, Inc., will discuss how these devices generate enough data to learn our behaviors and simplify/improve our lives. What if we could connect everything to everything? I'm not only talking about connecting things to things but also systems, cloud services, and people. Add in a little machine learning and artificial intelligence and now we have something interesting...
Last week, while in San Francisco, I used the Uber app and service four times. All four experiences were great, although one of the drivers stopped for 30 seconds and then left as I was walking up to the car. He must have realized I was a blogger. None the less, the next car was just a minute away and I suffered no pain. In this article, my colleague, Ved Sen, Global Head, Advisory Services Social, Mobile and Sensors at Cognizant shares his experiences and insights.
We are reaching the end of the beginning with WebRTC and real systems using this technology have begun to appear. One challenge that faces every WebRTC deployment (in some form or another) is identity management. For example, if you have an existing service – possibly built on a variety of different PaaS/SaaS offerings – and you want to add real-time communications you are faced with a challenge relating to user management, authentication, authorization, and validation. Service providers will want to use their existing identities, but these will have credentials already that are (hopefully) irreversibly encoded. In his session at Internet of @ThingsExpo, Peter Dunkley, Technical Director at Acision, will look at how this identity problem can be solved and discuss ways to use existing web identities for real-time communication.
Can call centers hang up the phones for good? Intuitive Solutions did. WebRTC enabled this contact center provider to eliminate antiquated telephony and desktop phone infrastructure with a pure web-based solution, allowing them to expand beyond brick-and-mortar confines to a home-based agent model. It also ensured scalability and better service for customers, including MUY! Companies, one of the country's largest franchise restaurant companies with 232 Pizza Hut locations. This is one example of WebRTC adoption today, but the potential is limitless when powered by IoT. Attendees will learn real-world benefits of WebRTC and explore future possibilities, as WebRTC and IoT intersect to improve customer service.
From telemedicine to smart cars, digital homes and industrial monitoring, the explosive growth of IoT has created exciting new business opportunities for real time calls and messaging. In his session at Internet of @ThingsExpo, Ivelin Ivanov, CEO and Co-Founder of Telestax, will share some of the new revenue sources that IoT created for Restcomm – the open source telephony platform from Telestax. Ivelin Ivanov is a technology entrepreneur who founded Mobicents, an Open Source VoIP Platform, to help create, deploy, and manage applications integrating voice, video and data. He is the co-founder of TeleStax, an Open Source Cloud Communications company that helps the shift from legacy IN/SS7 telco networks to IP-based cloud comms. An early investor in multiple start-ups, he still finds time to code for his companies and contribute to open source projects.
The Internet of Things (IoT) promises to create new business models as significant as those that were inspired by the Internet and the smartphone 20 and 10 years ago. What business, social and practical implications will this phenomenon bring? That's the subject of "Monetizing the Internet of Things: Perspectives from the Front Lines," an e-book released today and available free of charge from Aria Systems, the leading innovator in recurring revenue management.
The Internet of Things will put IT to its ultimate test by creating infinite new opportunities to digitize products and services, generate and analyze new data to improve customer satisfaction, and discover new ways to gain a competitive advantage across nearly every industry. In order to help corporate business units to capitalize on the rapidly evolving IoT opportunities, IT must stand up to a new set of challenges.
There’s Big Data, then there’s really Big Data from the Internet of Things. IoT is evolving to include many data possibilities like new types of event, log and network data. The volumes are enormous, generating tens of billions of logs per day, which raise data challenges. Early IoT deployments are relying heavily on both the cloud and managed service providers to navigate these challenges. In her session at 6th Big Data Expo®, Hannah Smalltree, Director at Treasure Data, to discuss how IoT, Big Data and deployments are processing massive data volumes from wearables, utilities and other machines.
P2P RTC will impact the landscape of communications, shifting from traditional telephony style communications models to OTT (Over-The-Top) cloud assisted & PaaS (Platform as a Service) communication services. The P2P shift will impact many areas of our lives, from mobile communication, human interactive web services, RTC and telephony infrastructure, user federation, security and privacy implications, business costs, and scalability. In his session at Internet of @ThingsExpo, Erik Lagerway, Co-founder of Hookflash, will walk through the shifting landscape of traditional telephone and voice services to the modern P2P RTC era of OTT cloud assisted services.
While great strides have been made relative to the video aspects of remote collaboration, audio technology has basically stagnated. Typically all audio is mixed to a single monaural stream and emanates from a single point, such as a speakerphone or a speaker associated with a video monitor. This leads to confusion and lack of understanding among participants especially regarding who is actually speaking. Spatial teleconferencing introduces the concept of acoustic spatial separation between conference participants in three dimensional space. This has been shown to significantly improve comprehension and conference efficiency.
The Internet of Things is tied together with a thin strand that is known as time. Coincidentally, at the core of nearly all data analytics is a timestamp. When working with time series data there are a few core principles that everyone should consider, especially across datasets where time is the common boundary. In his session at Internet of @ThingsExpo, Jim Scott, Director of Enterprise Strategy & Architecture at MapR Technologies, will discuss single-value, geo-spatial, and log time series data. By focusing on enterprise applications and the data center, he will use OpenTSDB as an example to explain some of these concepts including when to use different storage models.
SYS-CON Events announced today that Gridstore™, the leader in software-defined storage (SDS) purpose-built for Windows Servers and Hyper-V, will exhibit at SYS-CON's 15th International Cloud Expo®, which will take place on November 4–6, 2014, at the Santa Clara Convention Center in Santa Clara, CA. Gridstore™ is the leader in software-defined storage purpose built for virtualization that is designed to accelerate applications in virtualized environments. Using its patented Server-Side Virtual Controller™ Technology (SVCT) to eliminate the I/O blender effect and accelerate applications Gridstore delivers vmOptimized™ Storage that self-optimizes to each application or VM across both virtual and physical environments. Leveraging a grid architecture, Gridstore delivers the first end-to-end storage QoS to ensure the most important App or VM performance is never compromised. The storage grid, that uses Gridstore’s performance optimized nodes or capacity optimized nodes, starts with as few a...
The Transparent Cloud-computing Consortium (abbreviation: T-Cloud Consortium) will conduct research activities into changes in the computing model as a result of collaboration between "device" and "cloud" and the creation of new value and markets through organic data processing High speed and high quality networks, and dramatic improvements in computer processing capabilities, have greatly changed the nature of applications and made the storing and processing of data on the network commonplace. These technological reforms have not only changed computers and smartphones, but are also changing the data processing model for all information devices. In particular, in the area known as M2M (Machine-To-Machine), there are great expectations that information with a new type of value can be produced using a variety of devices and sensors saving/sharing data via the network and through large-scale cloud-type data processing. This consortium believes that attaching a huge number of devic...