Social Icons

twitterfacebookgoogle pluslinkedinrss feedemail

Pages

Showing posts with label open source. Show all posts
Showing posts with label open source. Show all posts

Friday, March 08, 2013

TEIID 8.1 tutorial - Part 10 - TEIID SOAP service + WSO2 + SoapUI

In this tutorial I'll be publishing the book SOAP web service using the API manager from WSO2.

To demonstrate that it works I'll be using as usual SoapUI

The API Manager is composed of two components the Publisher and the Store.

Obviously I need to start from the publisher and create the API: you ger the WSDL endpoint from the JBoss consolle in the webservices TAB.

The API start as CREATED so I need to set into PUBLISHED state.

The API is ready to be used, so is turn of the Store where is quite easy to subscribe to the API.
The main idea is that I'm a developer that uses some of the API published on the Store and I can have different applications that make use of the API and can register to use them with different "Tier" levels that means how much requests I can issue in a given time.

Sunday, December 09, 2012

JBoss 7.1.1 + GeoServer 2.2.2

I'm deploying GeoServer 2.2.2 into JBoss 7.1.1 and there are not many hint around on how to solve some issues.

If you download the WAR version of GeoServer and just deploy it into the standalone/deployments folders you get the following errors:



14:47:26,944 ERROR [stderr] (MSC service thread 1-5) java.lang.NoClassDefFoundError: com/sun/imageio/plugins/common/BogusColorSpace

14:47:26,944 ERROR [stderr] (MSC service thread 1-5)     at it.geosolutions.imageioimpl.plugins.tiff.TIFFImageReaderSpi.onRegistration(TIFFImageReaderSpi.java:168)

14:47:26,944 ERROR [stderr] (MSC service thread 1-5)     at javax.imageio.spi.SubRegistry.registerServiceProvider(ServiceRegistry.java:698)

14:47:26,944 ERROR [stderr] (MSC service thread 1-5)     at javax.imageio.spi.ServiceRegistry.registerServiceProvider(ServiceRegistry.java:285)

14:47:26,959 ERROR [stderr] (MSC service thread 1-5)     at javax.imageio.spi.IIORegistry.registerApplicationClasspathSpis(IIORegistry.java:191)

14:47:26,959 ERROR [stderr] (MSC service thread 1-5)     at javax.imageio.spi.IIORegistry.(IIORegistry.java:121)

14:47:26,959 ERROR [stderr] (MSC service thread 1-5)     at javax.imageio.spi.IIORegistry.getDefaultInstance(IIORegistry.java:142)

14:47:26,959 ERROR [stderr] (MSC service thread 1-5)     at org.geoserver.GeoserverInitStartupListener.contextDestroyed(GeoserverInitStartupListener.java:236)

14:47:26,959 ERROR [stderr] (MSC service thread 1-5)     at org.apache.catalina.core.StandardContext.listenerStop(StandardContext.java:3489)

14:47:26,959 ERROR [stderr] (MSC service thread 1-5)     at org.apache.catalina.core.StandardContext.stop(StandardContext.java:3999)

14:47:26,959 ERROR [stderr] (MSC service thread 1-5)     at org.apache.catalina.core.StandardContext.start(StandardContext.java:3917)

14:47:26,975 ERROR [stderr] (MSC service thread 1-5)     at org.jboss.as.web.deployment.WebDeploymentService.start(WebDeploymentService.java:90)

14:47:26,975 ERROR [stderr] (MSC service thread 1-5)     at org.jboss.msc.service.ServiceControllerImpl$StartTask.startService(ServiceControllerImpl.java:1811)

14:47:26,975 ERROR [stderr] (MSC service thread 1-5)     at org.jboss.msc.service.ServiceControllerImpl$StartTask.run(ServiceControllerImpl.java:1746)

14:47:26,975 ERROR [stderr] (MSC service thread 1-5)     at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)

14:47:26,975 ERROR [stderr] (MSC service thread 1-5)     at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)

14:47:26,975 ERROR [stderr] (MSC service thread 1-5)     at java.lang.Thread.run(Thread.java:662)

14:47:26,975 ERROR [stderr] (MSC service thread 1-5) Caused by: java.lang.ClassNotFoundException: com.sun.imageio.plugins.common.BogusColorSpace from [Module "deployment.geoserver.war:main" from Service Module Loader]

14:47:26,990 ERROR [stderr] (MSC service thread 1-5)     at org.jboss.modules.ModuleClassLoader.findClass(ModuleClassLoader.java:190)

14:47:26,990 ERROR [stderr] (MSC service thread 1-5)     at org.jboss.modules.ConcurrentClassLoader.performLoadClassUnchecked(ConcurrentClassLoader.java:468)

14:47:26,990 ERROR [stderr] (MSC service thread 1-5)     at org.jboss.modules.ConcurrentClassLoader.performLoadClassChecked(ConcurrentClassLoader.java:456)

14:47:26,990 ERROR [stderr] (MSC service thread 1-5)     at org.jboss.modules.ConcurrentClassLoader.performLoadClassChecked(ConcurrentClassLoader.java:423)

14:47:26,990 ERROR [stderr] (MSC service thread 1-5)     at org.jboss.modules.ConcurrentClassLoader.performLoadClass(ConcurrentClassLoader.java:398)

14:47:26,990 ERROR [stderr] (MSC service thread 1-5)     at org.jboss.modules.ConcurrentClassLoader.loadClass(ConcurrentClassLoader.java:120)

14:47:26,990 ERROR [stderr] (MSC service thread 1-5)     ... 16 more

14:47:27,006 ERROR [org.jboss.msc.service.fail] (MSC service thread 1-5) MSC00001: Failed to start service jboss.web.deployment.default-host./geoserver: org.jboss.msc.service.StartException in service jboss.web.deployment.default-host./geoserver: JBAS018040: Failed to start context
    at org.jboss.as.web.deployment.WebDeploymentService.start(WebDeploymentService.java:95)
    at org.jboss.msc.service.ServiceControllerImpl$StartTask.startService(ServiceControllerImpl.java:1811) [jboss-msc-1.0.2.GA.jar:1.0.2.GA]
    at org.jboss.msc.service.ServiceControllerImpl$StartTask.run(ServiceControllerImpl.java:1746) [jboss-msc-1.0.2.GA.jar:1.0.2.GA]
    at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886) [rt.jar:1.6.0_35]
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) [rt.jar:1.6.0_35]
    at java.lang.Thread.run(Thread.java:662) [rt.jar:1.6.0_35]



To solve the problem you have to  create two files:
jboss-classloading.xml

<classloading xmlns="urn:jboss:classloading:1.0"
name="geoserver.war"
domain="GeoServerDomain"
export-all="NON_EMPTY"
import-all="true">
</classloading>


jboss-deployment-structure.xml

<jboss-deployment-structure xmlns="urn:jboss:deployment-structure:1.1">
    <deployment>
        <dependencies>
            <system>
                <paths>
                    <path name="com/sun/imageio/spi"/>
                    <path name="com/sun/imageio/plugins/common"/>
                </paths>
            </system>
        </dependencies>
    </deployment>
</jboss-deployment-structure>


These files have to be added inside the WAR in the \WEB-INF\

This solves the problem and you get a nice and working GeoServer inside the JBoss application server.

Tuesday, December 04, 2012

WebRTC mozilla implementation

Here is a great demonstration of the next WebRTC implementation that Mozilla is developing for Firefox 18.
This is going to put in the trash all the web conference solutions. or at least rising the minimum feature offering. The power to send the currend browser to the other participant is amazing and powerful.

This could have a big impact on eLearning tools, adding new communication tools directly within the platform (I'm thinking at a Moodle on steroids).
The interesting aspect is the fact that the WebRTC technology enable a new world of integrated applications on the web, just a few click away.

I hope that projects like OpenMeetings will soon be able to leverage on this standard.




Tuesday, October 23, 2012

TEIID 8.1 tutorial - Part 5

We prepared a VDB in the previous part of the TEIID tutorial.

Now we want to test it on a TEIID server.

To do so we need a fresh and clean TEIID installation.

We download a JBoss AS version 7.1.1 and unzip it into a folder (I'm runniong the tutorial on windows, but you can do the same on linux).

I usually check that JBoss works out of the box before installing anything.

When you have checked the JBoss AS installation you are ready to install TEIID, that is pretty easy stuff to do as you have to download the TEIID distribution and just unpack it into the JBoss installation; there is the same folder structure so everything will go to its place.

For the demo we'll going to run JBoss in standalone mode, this means that we'll look at the files into the standalone folder.

Since there is a standalone-teiid.xml file I usually create a start script to set the config file to be that one, but is a habit of mine, you can rename it standalone.xml and work on that (just keep the original standalone somewhere should you need it).

Done that just start JBoss again and this time we'll see that also TEIID modules gets loaded and it is ready and running; obviously there is no DB right now.

Shut down everything and make some few configurations (all these stuffs can be done in different ways, as a tutorial I prefer to show what gets written into the XML file so that is known what web consolle does behind the scene).

Since we are going to connect to MySQL we need to prepare the module for MySQL with the driver so that JBoss and TEIID can make a connection to MySQL create a datasource to our DB with the correct jndi name we used in the VDB.

The TEIID installation comes with a usefull set of examples/templates for the modules so we just have to copy the MySQL one in the modules folder, copy the jdbc driver in the folder, configure the modules with the correct name of the lib and the driver is ready.

We than need to add the driver information within the standalone.xml file.

Done that we can add the driver information in the standalone.xml file and set all the parameters to be able to correctly connect to the DB.

When you have finished the configuration start JBoss and go to the web concolle and check the functioning of the datasource testing the connection with the DB.



Once we have finished this part we can deploy the VDB.

Thursday, October 18, 2012

Project ReteLIM - thanks to open source

I'm working on a very interesting project called ReteLIM.

Is a project to help hospitalized children to stay in contact with their class and to enable them to work together with their classmates.

I'm working side by side with teachers finding the best technical solution to apply to the task.

The project aims to define which hardware and software use and how to help teachers apply technology to the learning experience.

The model start with hospitalized children constraint, but can be applyed to any "remote" situation.

Our idea is to implement a "virtual classroom" using integration of open source tools to enable a complete learning experience helping a standardization of approach.

We decided to use a cloud hosting to serve the software.

In the cloud the teachers will find a Ubuntu desktop that they will be able to access from anywhere thanks to NX web access.

This desktop is loaded with all sort of program dedicated to education (it could be an Edubuntu distro, but for now we preferred to go with the standard one).

This desktop will also mount an NFS share from a server.

The server hosts an integrated environment composed by Joomla!! + Moodle + Mahara + OpenMeetings (single sign on thanks to Joomdle).

The nfs share will be seen by Moodle as a repository so all the content, produced and saved into a particular folder of the desktop, will be seen and available to Moodle without any trouble for the teacher.

Also OpenMeetings will be available as a Moodle activity so that it will be possible to use it to work with the hospitalized child and the support teacher (the teacher will be equipped with a tablet PC) and the class where a LIM (that is the italian acronymn for an interactive whiteboard) can be used: either the one done with the WII or commercial ones that public administration gave to the school.

The project is fantastic and the energy of the group is vibrant, this is why I choose IT as working life: it can really help making the difference for the lives of many, seeing the happyness in the eyes of the children that can feel to be still part of a normal routine is the greatest satisfaction.

I just feel that is important for me to thanks all the people that work in the open source ecosystem: without their work this project would not be possible and affordable.

Thanks guys.

Evolution of TEIID 8.1 tutorial

I've decided to expand this tutorial to add integration with other pieces of software I'm using in the Open-DAI project I'm working on.

Just to remember what I've already published in the tutorial right now:
1) Create a relational mapping
2) Create a XML document from an XSD schema
3) Map the relational DB to the XML document
4) Create the VDB

Planned coming next:
5) Install TEIID in JBoss AS
6) Deploy the VDB in TEIID server
7) Connect to the VDB with SquirrelSQL and get the XML document with a query
8) Create a web service that will publish the relational tables
9) Deploy the new VDB and the Web Service and test it with soapUI

The tutorial will follow these additional steps to demonstrate the integration of a data service generated with TEIID with other platforms:

10) Publish the TEIID web service with WSO2 API manager
11) test the published API with soapUI
12) publish the relational tables as REST service
13) Call the REST service using node.js
14) Call TEIID from node.js
15) How to update tables from a VDB

This will be the "coming next" for this tutorial, if you are interested in some more integrations or further explanation please leave a comment.

Sunday, September 09, 2012

Puppet and modules

I've been working with puppet and the good impression of the product balances with the few really good modules around.
There are lots of modules, some are good, but most are build to statisfy the specific needs of the author and not a generic management of the software also there is little integration or common approach: one uses wget another curl, one manage different ps, one require dependecy to a module from the same author and not to more official ones ( comprehensible but can be problematic when the dependancy is with things like apache or Java ).
Obviously this is the normal characteristic of oss project but I think that this calls for more control from project' developers.
The project is a good one and with version 3 has lots of good features: we need a bunch of basic modules designed with the state of the art so that there can be a common solution over which people can develop new more complex or dedicated mods.
This could help the grown of the contributing community.

Thursday, September 06, 2012

Puppet and exported resources

I've recently started using puppet for the european project Open-DAI I'm working on and I can say that after a steep learning period the tool is really nice.

I expecially like the exported resources that allow for "piloting" the creation of resources on a remote node from a first node.

The use case is installing stuff like a DB on a remote DB host for the application we are installing.
My example case is Zabbix.
I want to install zabbix in a distributed configuration using an existing MySQL server I have on the cloud and placing the application on a new cloud host.

Usually all the example and modules I find around imply to have all the stuff on the same host.

The idea id to declare on the application node the fact that you need a DB and to transform this declaration to a command execution on the Db to provision the required DB.

I'm using puppet 3.0.rc4 and opting to use puppet-mysql from puppetlabs (I must say that there is a bit of jungle on the puppet modules around and prefer to stick and possibly contribute to the puppetlabs collection)

The solution I found is to use exported resources on the application node and collecting them on the DB node in this way


In the zabbix host

...
@@mysql::db { zabbix1:
user => 'zabbix1',
password => 'mypass',
host => $::fqdn,
grant => ['all'],
tag => 'new_db_nodeDBname'
}
...

On the MySQL node

...
class { 'mysql::server':
config_hash => {root_password => 'changeme',}
}
Mysql::Db <<| tag == 'new_db_nodeDBname' |>>
...

Now I'll have to solve the orchestration and piloting of the whole process that is after created the DB I'll have to issue a sql creation and to do so I'll need to be sure to have the DB installed so this will require to:
force a puppet agent execution on the MySQL node (possibly using mcollective)
a second run of the puppect agent on the zabbix node to check the availability of the DB and proceed with the installation.

In any case a nice start.

Thursday, April 19, 2012

Mobile app with phonegap

I've managed to implement my first application using phonegap.
I'm very happy with the results.
Operative in no time with no problems.
Made a simple dumb application in half an hour.
Next step is to add a bit of business logic behind to test all the steps that will be needed for the EU project I'm following.

Friday, June 24, 2011

Lecture made at Politecnico of Turin

Here is the speech I made at Politecnico of Turin the 17/6.
The topic was open source in the Public Administration.
I believe that new engineers have a moral duty to propose open source solutions to their customers especially when they are public administrations.
This does not mean that proprietary solutions are to be excluded, but open source should be given proper attention.
Here is the presentation


Saturday, April 02, 2011

Sankorè

I've had the chance to use Sankorè for whiteboard.
It's really a great product and it support the W3C Widget standards so it's possible to import Chrome Widgets.
Will post some more info

Tuesday, November 30, 2010

Much open source in these past days

I've been working a lot in these past months and had little time to blog.
Lots of stuff around and as usual good open source on the table.
I've looking on Drupal, Elgg, OpenMeetings, Limesurvey, Liferay and some other stuff.
Hope to manage to post a bit of information and some how-to in the next few days.

Wednesday, June 09, 2010

The video is a bit old, but it's from a presentation of mine at a PA conference on Open Source strategy of the company I work for.

Tuesday, June 09, 2009

TEIID tutorial

Managed to finish integrating TEIID with iReport.
Since it has been a bit of a trouble and there is little documentation around I've made a tutorial to help my memory and maybe helping others around.
Here is the link.
I've created a VDB merging an Oracle DB and a MySQL one (that contain data from excel ... long way to integrate data ...)
The version used are TEIID 6.1 snapshot and iReport 3.5.2 (Java is 1.6), the PC is a windows box, but the stuff works also in linux (had to use that one this time).
Warnings are:
* mind the classpath it has been a pain to check it right.
* look for connector troubles at the firts sign of malfunction (there are some threads in the TEIID forum about it); it should be OK with this version, but in case of trouble is the first thing I'll look upon.

I'm really happy since now that all is tested and working can create a more useful VDB and get a bunch of data integrated and have a new view on information.
A great thanks to TEIID people for the product and the help in solving problems, hopes the tutorial can give something back.

Friday, May 22, 2009

Software liability

EU wants software to be liable like any other product.
This seems a good thing to me.
Since software is something that influence widely our life I think that is right to expect some liability from software producers.
Is absurd that people have to accept (even if they usually do not read it) something like EULA where is clearly stated that the software could well not work.
I'm paying good money for, it had better work.
This could go in the direction of introducing a higher level of professionals in code writing, something not always true, not all people employed to write code have the right skills to do it.
Obviously this apply to things you pay for and so it does not apply to open source software since is free software, you receive much more rights with the software than in a tipical proprietary software, you cannot also ask for liability.
In case of open source managed by companies like Red Hat, well this is what their customers are already paying for, they are paying for liability, they could have the option of getting the software for free, but since they need liability they pay.
So dear proprietary vendors, time is coming for you to accept your responsability: all products can heve problems a washing machine, a TV set, all heve to guarantee the customer that it works or thet it will be fixed.
With software is even more easy to give the fix, but the patch has to be produced no more "is not a bug is a feature" option around.
Software has to grow up and accept responsability.

Monday, April 20, 2009

Vision tracking

It's time to create some virtual reality or augmented reality.
Not only new methods of user interactions are possible using vision besed tracking.
For 2D tracking the reacTIVision project is really interesting.
RPG application can be a virtual tabletop controlled by "fiducial token ID".
It could be a nice integration for applications like MapTools.
For now installed the application and tested successfully.
Will have to find something for 3D tracking and eye tracking.
By the way it's an open source project.

Monday, March 23, 2009

Enterprise Architecture the open source way

OK. I knew I couldn't manage to keep myself away from enterprise architecture for long.
I must admit that is a topic that seems to me not so much connected to the real life in the IT.
In any case one of the big problems is that there are no nice tools to help you getting started and to do a good job, especially in the OSS world.
I found the Essential project and I'll give it a try, it has also good tutorials to manage to have a more real grip to something near the stuff one has to manage everyday.

Wednesday, January 21, 2009

Java Date library

I was looking for a library to manage Date and calendar to add some time/event functionality to MapTool and I stumbled upon joda .
It's really a powerful library and should be possible to customize it to create also fantasy calendar like the Harptos one (the one used in the forgotten realm).
Using this to track time within MapTool could be a nice feature addition so to have a time management option.

Friday, January 09, 2009

PCGEN and MapTool

Decided to look on how to link the two programs since I'm lazy (I can say better I find useless to write more time the same data when using digital information we should be able to transform it).
There is the possibility to create a character sheet export xml that can be used to create a new tocken based on the information from PCgen so you can keep info from your PC in pcgen that is surely the best of the two, but can use MapTool for mapping during the session.

Creating the xml in PCGen is quite easy and there is lots of usefull data there.
All you have to do is than placing the saved file inside a previously saved rptok file.
To satisfy my laziness I'll try to automate the import in MapTool.

Vietnam goes open source

This is an interesting piece of news.
Vietnam is a growing economy, even if not a wealthy country, the choice to impose the use of open source is a good political decision given the economical condition of the country and could open up new energies for open source projects.
Luca