Click here to close now.

Welcome!

Agile Computing Authors: Liz McMillan, Mark O'Neill, Rex Morrow, Datical, Lori MacVittie, Sematext Blog

Related Topics: IoT User Interface, Java IoT

IoT User Interface: 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
WebRTC defines no default signaling protocol, causing fragmentation between WebRTC silos. SIP and XMPP provide possibilities, but come with considerable complexity and are not designed for use in a web environment. In his session at @ThingsExpo, Matthew Hodgson, technical co-founder of the Matrix.org, discussed how Matrix is a new non-profit Open Source Project that defines both a new HTTP-based standard for VoIP & IM signaling and provides reference implementations.
SYS-CON Events announced today that O'Reilly Media has been named “Media Sponsor” of SYS-CON's 16th International Cloud Expo®, which will take place on June 9–11, 2015, at the Javits Center in New York City, NY. O'Reilly Media spreads the knowledge of innovators through its books, online services, magazines, and conferences. Since 1978, O'Reilly Media has been a chronicler and catalyst of cutting-edge development, homing in on the technology trends that really matter and spurring their adoption by amplifying "faint signals" from the alpha geeks who are creating the future. An active participa...
"People are a lot more knowledgeable about APIs now. There are two types of people who work with APIs - IT people who want to use APIs for something internal and the product managers who want to do something outside APIs for people to connect to them," explained Roberto Medrano, Executive Vice President at SOA Software, in this SYS-CON.tv interview at Cloud Expo, held Nov 4–6, 2014, at the Santa Clara Convention Center in Santa Clara, CA.
There will be 150 billion connected devices by 2020. New digital businesses have already disrupted value chains across every industry. APIs are at the center of the digital business. You need to understand what assets you have that can be exposed digitally, what their digital value chain is, and how to create an effective business model around that value chain to compete in this economy. No enterprise can be complacent and not engage in the digital economy. Learn how to be the disruptor and not the disruptee.
2015 predictions circa 1970: houses anticipate our needs and adapt, city infrastructure is citizen and situation aware, office buildings identify and preprocess you. Today smart buildings have no such collective conscience, no shared set of fundamental services to identify, predict and synchronize around us. LiveSpace and M2Mi are changing that. LiveSpace Smart Environment devices deliver over the M2Mi IoT Platform real time presence, awareness and intent analytics as a service to local connected devices. In her session at @ThingsExpo, Sarah Cooper, VP Business of Development at M2Mi, will d...
Thanks to widespread Internet adoption and more than 10 billion connected devices around the world, companies became more excited than ever about the Internet of Things in 2014. Add in the hype around Google Glass and the Nest Thermostat, and nearly every business, including those from traditionally low-tech industries, wanted in. But despite the buzz, some very real business questions emerged – mainly, not if a device can be connected, or even when, but why? Why does connecting to the cloud create greater value for the user? Why do connected features improve the overall experience? And why do...
Almost everyone sees the potential of Internet of Things but how can businesses truly unlock that potential. The key will be in the ability to discover business insight in the midst of an ocean of Big Data generated from billions of embedded devices via Systems of Discover. Businesses will also need to ensure that they can sustain that insight by leveraging the cloud for global reach, scale and elasticity.
Imagine a world where targeting, attribution, and analytics are just as intrinsic to the physical world as they currently are to display advertising. Advances in technologies and changes in consumer behavior have opened the door to a whole new category of personalized marketing experience based on direct interactions with products. The products themselves now have a voice. What will they say? Who will control it? And what does it take for brands to win in this new world? In his session at @ThingsExpo, Zack Bennett, Vice President of Customer Success at EVRYTHNG, will answer these questions a...
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! Internet of @ThingsExpo, taking place Nov 3-5, 2015, at the Santa Clara Convention Center in Santa Clara, CA, is co-located with 17th Cloud Expo and will feature technical sessions from a rock star conference faculty and the leading industry players in the world. The Internet of Things (IoT) is the most profound change in personal an...
SYS-CON Events announced today that BMC will exhibit at SYS-CON's 16th International Cloud Expo®, which will take place on June 9-11, 2015, at the Javits Center in New York City, NY. BMC delivers software solutions that help IT transform digital enterprises for the ultimate competitive business advantage. BMC has worked with thousands of leading companies to create and deliver powerful IT management services. From mainframe to cloud to mobile, BMC pairs high-speed digital innovation with robust IT industrialization – allowing customers to provide amazing user experiences with optimized IT per...
We’re entering a new era of computing technology that many are calling the Internet of Things (IoT). Machine to machine, machine to infrastructure, machine to environment, the Internet of Everything, the Internet of Intelligent Things, intelligent systems – call it what you want, but it’s happening, and its potential is huge. IoT is comprised of smart machines interacting and communicating with other machines, objects, environments and infrastructures. As a result, huge volumes of data are being generated, and that data is being processed into useful actions that can “command and control” thi...
Building low-cost wearable devices can enhance the quality of our lives. In his session at Internet of @ThingsExpo, Sai Yamanoor, Embedded Software Engineer at Altschool, provided an example of putting together a small keychain within a $50 budget that educates the user about the air quality in their surroundings. He also provided examples such as building a wearable device that provides transit or recreational information. He then reviewed the resources available to build wearable devices at home including open source hardware, the raw materials required and the options available to power s...
In their session at @ThingsExpo, Shyam Varan Nath, Principal Architect at GE, and Ibrahim Gokcen, who leads GE's advanced IoT analytics, focused on the Internet of Things / Industrial Internet and how to make it operational for business end-users. Learn about the challenges posed by machine and sensor data and how to marry it with enterprise data. They also discussed the tips and tricks to provide the Industrial Internet as an end-user consumable service using Big Data Analytics and Industrial Cloud.
We certainly live in interesting technological times. And no more interesting than the current competing IoT standards for connectivity. Various standards bodies, approaches, and ecosystems are vying for mindshare and positioning for a competitive edge. It is clear that when the dust settles, we will have new protocols, evolved protocols, that will change the way we interact with devices and infrastructure. We will also have evolved web protocols, like HTTP/2, that will be changing the very core of our infrastructures. At the same time, we have old approaches made new again like micro-services...
How do APIs and IoT relate? The answer is not as simple as merely adding an API on top of a dumb device, but rather about understanding the architectural patterns for implementing an IoT fabric. There are typically two or three trends: Exposing the device to a management framework Exposing that management framework to a business centric logic Exposing that business layer and data to end users. This last trend is the IoT stack, which involves a new shift in the separation of what stuff happens, where data lives and where the interface lies. For instance, it's a mix of architectural styles ...
Connected devices and the Internet of Things are getting significant momentum in 2014. In his session at Internet of @ThingsExpo, Jim Hunter, Chief Scientist & Technology Evangelist at Greenwave Systems, examined three key elements that together will drive mass adoption of the IoT before the end of 2015. The first element is the recent advent of robust open source protocols (like AllJoyn and WebRTC) that facilitate M2M communication. The second is broad availability of flexible, cost-effective storage designed to handle the massive surge in back-end data in a world where timely analytics is e...
Collecting data in the field and configuring multitudes of unique devices is a time-consuming, labor-intensive process that can stretch IT resources. Horan & Bird [H&B], Australia’s fifth-largest Solar Panel Installer, wanted to automate sensor data collection and monitoring from its solar panels and integrate the data with its business and marketing systems. After data was collected and structured, two major areas needed to be addressed: improving developer workflows and extending access to a business application to multiple users (multi-tenancy). Docker, a container technology, was used to ...
The true value of the Internet of Things (IoT) lies not just in the data, but through the services that protect the data, perform the analysis and present findings in a usable way. With many IoT elements rooted in traditional IT components, Big Data and IoT isn’t just a play for enterprise. In fact, the IoT presents SMBs with the prospect of launching entirely new activities and exploring innovative areas. CompTIA research identifies several areas where IoT is expected to have the greatest impact.
The Industrial Internet revolution is now underway, enabled by connected machines and billions of devices that communicate and collaborate. The massive amounts of Big Data requiring real-time analysis is flooding legacy IT systems and giving way to cloud environments that can handle the unpredictable workloads. Yet many barriers remain until we can fully realize the opportunities and benefits from the convergence of machines and devices with Big Data and the cloud, including interoperability, data security and privacy.
Explosive growth in connected devices. Enormous amounts of data for collection and analysis. Critical use of data for split-second decision making and actionable information. All three are factors in making the Internet of Things a reality. Yet, any one factor would have an IT organization pondering its infrastructure strategy. How should your organization enhance its IT framework to enable an Internet of Things implementation? In this session, James Kirkland, Red Hat's Chief Architect for the Internet of Things and Intelligent Systems, will describe how to revolutionize your architecture and...