Showing posts with label GWT Framework. Show all posts
Showing posts with label GWT Framework. Show all posts

Dec 10, 2009

Released GWT 2.0 with Speed Tracer

GWT 2.0 new features

  • Fast edit/refresh with new development mode and draft compiles
  • Declarative UI with UiBinder
  • Pixel-perfect visuals with layout panels
  • Compiler improvements
  • Optimized resources with ClientBundle

Download GWT 2.0

Speed Tracer : http://code.google.com/webtoolkit/speedtracer/

Speed Tracer Examples : http://code.google.com/webtoolkit/speedtracer/speed-tracer-examples.html

Article : GWT Now With SpeedTracer

Video about GWT 2.0 Features :

GWT 2.0 New Features

Released GWT 2.0 with Speed Tracer

GWT 2.0 new features

  • Fast edit/refresh with new development mode and draft compiles
  • Declarative UI with UiBinder
  • Pixel-perfect visuals with layout panels
  • Compiler improvements
  • Optimized resources with ClientBundle

Download GWT 2.0

Speed Tracer : http://code.google.com/webtoolkit/speedtracer/

Speed Tracer Examples : http://code.google.com/webtoolkit/speedtracer/speed-tracer-examples.html

Article : GWT Now With SpeedTracer

Video about GWT 2.0 Features :

GWT 2.0 New Features

Nov 4, 2009

How to start working on GWT in Web Mode?

Eclipse Environment

Eclipse 3.4.2 with the following installed software:

Google App Engine Java SDK 1.2.1 (which I had to disable, as explained below)

Google Plugin for Eclipse 3.4

Google Web Toolkit SDK 1.6.4

Java Run Environment

JDK/JRE 1.6.0_14

Application Project

The GWT SDK contains a new "Web Application" project type and sample project for GWT application development.

GWT Libraries

GWT 1.7 , GXT 2.0, GWT-EXT 2.0.6 (using GXT because of lack of free RPC/MemStore library)

I placed the content of these under /Program Files (x86) in the appropriate following directories:

/GWT1.7

/GXT2.0

/GWTEXT2.0

Then in Eclipse, under Window->Preferences->Java->Build Path->User Libraries, I created three new libraries, GWT_1_7, GXT_2_0, GWTEXT_2_0 and added all the jars files from their corresponding directories.

Build Path

Right-click on the project and select Build Path. If the GWT SKD plugin is installed, the GWT libraries will already be there. Select Add Library=>User Library and add the libraries you need. I also added mysql-connector-jave-5.0.8-bin.jar, though I didn't check if it was necessary.

Get on the GWT mailing list to receive updates of GWT. When updating the GWT SDK, select Help=>Software Updates=>Google*. Install the update and restart. Then, as above, right-click on the project and select Build Path =>Add Library=>Google Web Toolkit and select the new SDK.

Run Configuration

Right-click on the project and select Run As->Run Configurations. The GWT SDK sets up most of this for you. I added -Xmx512M in the VM arguments window

Setting up servlet path

First, set up a servlet mapping in web.xml

war/WEB-INF/web.xml

In hosted mode, the moduleRelativeURL is http://localhost:8080/VinayWebApp/vin.

<servlet>

<servlet-name>VINServlet</servlet-name>

<servlet-class>edu.isi.page.vin.server.VinayServiceImpl</servlet-class>

</servlet>

<servlet-mapping>

<servlet-name>VINServlet</servlet-name>

<url-pattern>/VinayWebApp/vin</url-pattern>

</servlet-mapping>

Next, there are several places in the code where one must specify the mapping. I chose to use a shared constant so it would be easy to change. Formerly, the mapping was specified in WebApp.gwt.xml so this would not have covered all instances, but that is not necessary now.

VinayWebApp.gwt.xml

Old style (commented out): //<servlet path="/vin" class="edu.isi.page.vin.server.VinayServiceImpl"/>

client/VINConstants.java

public final static String VIN_SERVLET_PATH = "vin";

client/VinayWebApp.java

VINServiceAsync service = (VINServiceAsync) GWT.create(VINService.class);

ServiceDefTarget endpoint = (ServiceDefTarget)service;

String moduleRelativeURL = GWT.getModuleBaseURL() + VINConstants.VIN_SERVLET_PATH;

endpoint.setServiceEntryPoint(moduleRelativeURL);

client/VINService.java

New Style (replaced with): @RemoteServiceRelativePath(VINConstants.VIN_SERVLET_PATH );

For past servlets, for connection pooling, I have included a context.xml file with the following information, but it isn't necessary (at this point) for my GWT project so I don't know if the path for a <Context> tag would be /vin, /VinayWebApp, or /VinayWebApp/vin.

war/META-INF/context.xml

<Context path="/path">

<Resource auth="Container" driverClassName="com.mysql.jdbc.Driver" name="jdbc..."

password="..." type="javax.sql.DataSource" url="jdbc:mysql..." username="..."/>

</Context>

Connecting to the mysql database

The line Connection connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/ myschema", "myuser", "mypass"); was throwing a NoClassDefFound error, meaning that it couldn't access the mysql jar file. The com.mysql jar file was already in war/WEB-INF/lib, but having developed Tomcat servlets for years, I was used to dropping it into the Tomcat lib folder as well. So I tried placing it with other jars under eclipse/plugins/com.google.appengine.eclipse... and com.google.gwt.eclipse... without success. I finally happened on http://osdir.com/ml/GoogleWebToolkit/2009-06/msg01483.html and tried unchecking AppEngine. Sure enough it worked, and surprisingly, everything else continued to work, too.

Setting up for use with GXT

1. Download EXT 3.0

2. Place ext-all.js (etc.) as well as the entire adapter and resources folders under public/js/ext

3. Note: I had to place ext-all.js and ext-all-debug.js directly under public/ as well, even though all pointers in the <myapp>.gwt.xml files refer to these libraries by full path from js/ext/....

4. Note: All files in public/ get copied to war/<myapp>/ every time the hosted mode browser is refreshed.

Setting up for use with GWT EXT (must use EXT 2.0.2)

Getting started with GWT 2.0 (http://www.gwt-ext.com/wiki/index.php?title=Main_Page), especially the GWT 2.0 tutorial (http://gwt-ext.com/wiki/index.php?title=Tutorial:Introduction_to_GWT-Ext_2.0)

1. Download EXT 2.0.2

2. Place ext-all.js (etc.) as well as the entire adapter and resources folders under public/js/ext

3. Note: I had to place ext-all.js and ext-all-debug.js directly under public/ as well, even though all pointers in the <myapp>.gwt.xml files refer to these libraries by full path from js/ext/....

4. Note: All files in public/ get copied to war/<myapp>/ every time the hosted mode browser is refreshed.

When I include any GWT-EXT object in my GWT application I immediately get an Initializer Exception. The message out of javascript is "'$wnd.Ext' is null or not an object". Is there something more that I need to do. I have put:

<inherits name='com.gwtext.GwtExt'/>

in my module file; included the css and javascript file in the html; and put the javascript files in my public directory.

Testing under Tomcat:80

I started Tomcat using Services (I had previously set it to manual to avoid a potential port conflict with the hosted browser.) Pressed the Compile/Browse button on the hosted browser then moved the whole /war directory to Tomcat's webapp directory and renamed it /vin. http://localhost/vin did not work, but using the fully qualified name did, i.e. http://mymachine.mydomain.com/vin.

The war directory included:

\vin (\war renamed for placement under Tomcat\webapps)

\VinayWebApp

\gwt

\js

\resources

\WEB-INF

\classes

\lib

appengine-web.xml

logging.properties

web.xml

VinayWebApp.css

VinayWebApp.html

How to start working on GWT in Web Mode?

Eclipse Environment

Eclipse 3.4.2 with the following installed software:

Google App Engine Java SDK 1.2.1 (which I had to disable, as explained below)

Google Plugin for Eclipse 3.4

Google Web Toolkit SDK 1.6.4

Java Run Environment

JDK/JRE 1.6.0_14

Application Project

The GWT SDK contains a new "Web Application" project type and sample project for GWT application development.

GWT Libraries

GWT 1.7 , GXT 2.0, GWT-EXT 2.0.6 (using GXT because of lack of free RPC/MemStore library)

I placed the content of these under /Program Files (x86) in the appropriate following directories:

/GWT1.7

/GXT2.0

/GWTEXT2.0

Then in Eclipse, under Window->Preferences->Java->Build Path->User Libraries, I created three new libraries, GWT_1_7, GXT_2_0, GWTEXT_2_0 and added all the jars files from their corresponding directories.

Build Path

Right-click on the project and select Build Path. If the GWT SKD plugin is installed, the GWT libraries will already be there. Select Add Library=>User Library and add the libraries you need. I also added mysql-connector-jave-5.0.8-bin.jar, though I didn't check if it was necessary.

Get on the GWT mailing list to receive updates of GWT. When updating the GWT SDK, select Help=>Software Updates=>Google*. Install the update and restart. Then, as above, right-click on the project and select Build Path =>Add Library=>Google Web Toolkit and select the new SDK.

Run Configuration

Right-click on the project and select Run As->Run Configurations. The GWT SDK sets up most of this for you. I added -Xmx512M in the VM arguments window

Setting up servlet path

First, set up a servlet mapping in web.xml

war/WEB-INF/web.xml

In hosted mode, the moduleRelativeURL is http://localhost:8080/VinayWebApp/vin.

<servlet>

<servlet-name>VINServlet</servlet-name>

<servlet-class>edu.isi.page.vin.server.VinayServiceImpl</servlet-class>

</servlet>

<servlet-mapping>

<servlet-name>VINServlet</servlet-name>

<url-pattern>/VinayWebApp/vin</url-pattern>

</servlet-mapping>

Next, there are several places in the code where one must specify the mapping. I chose to use a shared constant so it would be easy to change. Formerly, the mapping was specified in WebApp.gwt.xml so this would not have covered all instances, but that is not necessary now.

VinayWebApp.gwt.xml

Old style (commented out): //<servlet path="/vin" class="edu.isi.page.vin.server.VinayServiceImpl"/>

client/VINConstants.java

public final static String VIN_SERVLET_PATH = "vin";

client/VinayWebApp.java

VINServiceAsync service = (VINServiceAsync) GWT.create(VINService.class);

ServiceDefTarget endpoint = (ServiceDefTarget)service;

String moduleRelativeURL = GWT.getModuleBaseURL() + VINConstants.VIN_SERVLET_PATH;

endpoint.setServiceEntryPoint(moduleRelativeURL);

client/VINService.java

New Style (replaced with): @RemoteServiceRelativePath(VINConstants.VIN_SERVLET_PATH );

For past servlets, for connection pooling, I have included a context.xml file with the following information, but it isn't necessary (at this point) for my GWT project so I don't know if the path for a <Context> tag would be /vin, /VinayWebApp, or /VinayWebApp/vin.

war/META-INF/context.xml

<Context path="/path">

<Resource auth="Container" driverClassName="com.mysql.jdbc.Driver" name="jdbc..."

password="..." type="javax.sql.DataSource" url="jdbc:mysql..." username="..."/>

</Context>

Connecting to the mysql database

The line Connection connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/ myschema", "myuser", "mypass"); was throwing a NoClassDefFound error, meaning that it couldn't access the mysql jar file. The com.mysql jar file was already in war/WEB-INF/lib, but having developed Tomcat servlets for years, I was used to dropping it into the Tomcat lib folder as well. So I tried placing it with other jars under eclipse/plugins/com.google.appengine.eclipse... and com.google.gwt.eclipse... without success. I finally happened on http://osdir.com/ml/GoogleWebToolkit/2009-06/msg01483.html and tried unchecking AppEngine. Sure enough it worked, and surprisingly, everything else continued to work, too.

Setting up for use with GXT

1. Download EXT 3.0

2. Place ext-all.js (etc.) as well as the entire adapter and resources folders under public/js/ext

3. Note: I had to place ext-all.js and ext-all-debug.js directly under public/ as well, even though all pointers in the <myapp>.gwt.xml files refer to these libraries by full path from js/ext/....

4. Note: All files in public/ get copied to war/<myapp>/ every time the hosted mode browser is refreshed.

Setting up for use with GWT EXT (must use EXT 2.0.2)

Getting started with GWT 2.0 (http://www.gwt-ext.com/wiki/index.php?title=Main_Page), especially the GWT 2.0 tutorial (http://gwt-ext.com/wiki/index.php?title=Tutorial:Introduction_to_GWT-Ext_2.0)

1. Download EXT 2.0.2

2. Place ext-all.js (etc.) as well as the entire adapter and resources folders under public/js/ext

3. Note: I had to place ext-all.js and ext-all-debug.js directly under public/ as well, even though all pointers in the <myapp>.gwt.xml files refer to these libraries by full path from js/ext/....

4. Note: All files in public/ get copied to war/<myapp>/ every time the hosted mode browser is refreshed.

When I include any GWT-EXT object in my GWT application I immediately get an Initializer Exception. The message out of javascript is "'$wnd.Ext' is null or not an object". Is there something more that I need to do. I have put:

<inherits name='com.gwtext.GwtExt'/>

in my module file; included the css and javascript file in the html; and put the javascript files in my public directory.

Testing under Tomcat:80

I started Tomcat using Services (I had previously set it to manual to avoid a potential port conflict with the hosted browser.) Pressed the Compile/Browse button on the hosted browser then moved the whole /war directory to Tomcat's webapp directory and renamed it /vin. http://localhost/vin did not work, but using the fully qualified name did, i.e. http://mymachine.mydomain.com/vin.

The war directory included:

\vin (\war renamed for placement under Tomcat\webapps)

\VinayWebApp

\gwt

\js

\resources

\WEB-INF

\classes

\lib

appengine-web.xml

logging.properties

web.xml

VinayWebApp.css

VinayWebApp.html

Google Web Toolkit Widgets, Plugins, and Tools

Autocompleter GWT Widget

http://jroller.com/page/glongman?entry=gwt_autocompleter

Check out the code for this Autocompleter GWT widget.

Canvas Widget

http://gwt.components.googlepages.com/canvas

Download the Canvas widget and learn how to use it in your GWT classes.

GWT-Components

http://sourceforge.net/projects/gwt-components

Download and contribute to the GWT-Components—a collection of GWT extensions.

GWT Addons

http://sourceforge.net/projects/gwtaddons

Download the GWT Addons including a rich text editor and more.

SpringGWT

http://sourceforge.net/projects/spring-gwt

Download the SpringGWT for use in client-side application development using the GWT.

Project Dune Quality Support System

http://sourceforge.net/projects/pdune

Download the Project Dune Quality Support System, built with the Google Web Toolkit and other technologies.

Java Applet Web Server (AppletServer)

http://sourceforge.net/projects/appletserver

Download the Java Applet Web Server (AppletServer). Use the GWT and allows you to run Java applets on the server-side and automatically generate AJAX for the browser.

Google Web Toolkit Hacks

http://sourceforge.net/projects/gwt-hacks

Download the Google Web Toolkit Hacks. Includes widgets, plugins, AJAX applets and games based on the GWT.

Openfount

http://www.openfount.com/

Download the Openfount Google Web Toolkit. Features include XML classes, SOAP classes, crypto classes, Base64 classes, Amazon S3 classes, Amazon Simple Queue Service classes, and SOAP classes for the Openfount Queued Server.

IntelliJ IDEA Studio Plugin

http://www.jetbrains.net/confluence/display/IDEADEV/GWT+Studio+plugin

Download the GWT Studio plugin for IntelliJ IDEA. Site includes a demo, a description of the GWT Studio and a walkthrough of its features.

Eclipse GWT Plugin

http://sourceforge.net/projects/eclipse-gwt

Download the Eclipse GWT plugin.

Googlipse

http://www.googlipse.com/

Googlipse is an Eclipse plugin for the Google Web Toolkit. Find downloads, documentation, a FAQ and more.

GWT Widget Library

http://gwt-widget.sourceforge.net/

Check out the GWT Widget Library. Includes widgets, utilities and wrappers. Also find demos, a source reference and more.

Open Source Widgets

http://gwt.components.googlepages.com/

Collection of open source Google Web Toolkit widgets.

Google Web Toolkit Widget Gallery

com.google.gwt.doc.DeveloperGuide.UserInterface.WidgetGallery.html

Google Web Toolkit's Widget Gallery. Here you will find widgets for a normal button, a radio button, a check box, text box, password text box, text area, hyperlink, list box, menu bar , tree, table, tab bar, dialog box, popup panel, stack panel, horizontal panel, vertical panel, flow panel, dock panel, and tab panel.

Google Web Toolkit Widgets, Plugins, and Tools

Autocompleter GWT Widget

http://jroller.com/page/glongman?entry=gwt_autocompleter

Check out the code for this Autocompleter GWT widget.

Canvas Widget

http://gwt.components.googlepages.com/canvas

Download the Canvas widget and learn how to use it in your GWT classes.

GWT-Components

http://sourceforge.net/projects/gwt-components

Download and contribute to the GWT-Components—a collection of GWT extensions.

GWT Addons

http://sourceforge.net/projects/gwtaddons

Download the GWT Addons including a rich text editor and more.

SpringGWT

http://sourceforge.net/projects/spring-gwt

Download the SpringGWT for use in client-side application development using the GWT.

Project Dune Quality Support System

http://sourceforge.net/projects/pdune

Download the Project Dune Quality Support System, built with the Google Web Toolkit and other technologies.

Java Applet Web Server (AppletServer)

http://sourceforge.net/projects/appletserver

Download the Java Applet Web Server (AppletServer). Use the GWT and allows you to run Java applets on the server-side and automatically generate AJAX for the browser.

Google Web Toolkit Hacks

http://sourceforge.net/projects/gwt-hacks

Download the Google Web Toolkit Hacks. Includes widgets, plugins, AJAX applets and games based on the GWT.

Openfount

http://www.openfount.com/

Download the Openfount Google Web Toolkit. Features include XML classes, SOAP classes, crypto classes, Base64 classes, Amazon S3 classes, Amazon Simple Queue Service classes, and SOAP classes for the Openfount Queued Server.

IntelliJ IDEA Studio Plugin

http://www.jetbrains.net/confluence/display/IDEADEV/GWT+Studio+plugin

Download the GWT Studio plugin for IntelliJ IDEA. Site includes a demo, a description of the GWT Studio and a walkthrough of its features.

Eclipse GWT Plugin

http://sourceforge.net/projects/eclipse-gwt

Download the Eclipse GWT plugin.

Googlipse

http://www.googlipse.com/

Googlipse is an Eclipse plugin for the Google Web Toolkit. Find downloads, documentation, a FAQ and more.

GWT Widget Library

http://gwt-widget.sourceforge.net/

Check out the GWT Widget Library. Includes widgets, utilities and wrappers. Also find demos, a source reference and more.

Open Source Widgets

http://gwt.components.googlepages.com/

Collection of open source Google Web Toolkit widgets.

Google Web Toolkit Widget Gallery

com.google.gwt.doc.DeveloperGuide.UserInterface.WidgetGallery.html

Google Web Toolkit's Widget Gallery. Here you will find widgets for a normal button, a radio button, a check box, text box, password text box, text area, hyperlink, list box, menu bar , tree, table, tab bar, dialog box, popup panel, stack panel, horizontal panel, vertical panel, flow panel, dock panel, and tab panel.

Oct 9, 2009

Next Generation Web Based Telecom Applications

Introduction
  • Telecom applications in today’s world are not merely limited to providing telephone connection across two locations.
  • Today’s telecom equipments make use of voice, data, and video communication mode and range from a simple telephone or mobile phones to wireless optical technologies used across in radars and satellites for scientific and military purposes.
  • However with rising demands of customers and with competitive market conditions, providing these services is coming across as a challenge.
  • So, Telecom Operators are transforming themselves into broader service oriented providers along with providing value additions to the end user. But this requires use of latest hardware and software technologies in an effective and smart way.
Use of Telecom Services

image

Need for Next Generation Architecture (NGA)
  • Telecom applications usually are tightly coupled with proprietary hardware used by Telecom Operators.
  • Due to the complexity involved in the nature of telecom applications, providing services which are readily available, secure and platform independent is a challenge.
  • With invent of new and upgraded hardware, telecom operators need to enhance their software platforms with latest technologies and architectures to support the new hardware.

So, following is one of the possible approaches:

image

Advantages of NGA

Following factors (individually or collectively) could result in the transition to NGA:

  • Low Development and Maintenance Cost
  • Improved Performance
  • Integration with latest tools and technologies
  • Robust and Fault-Tolerant systems
  • Multi Environment/Multi Platform Support
  • More secure and reliable
The SOA Architecture Pattern
  • Service-Oriented Architecture (SOA) breaks everyday business applications into individual processes and functions, called services.
  • SOA is a collection of services communicating with each other through standard interfaces and is designed to create a loosely connected architecture built up of reusable components.
  • From a developer’s point of view, SOA provides a programming model to build Web Services, which is the new buzzword in the software industry.
  • Many IT firms today are moving towards the use of Web Services in their applications for maximum benefit and SOA is one of the most popular architecture choices (e.g. British Telecom, IBM).
SOA Architecture Pattern – Key Points

image

Advantages of SOA
  • Can be run using Java and .Net platforms
  • Can be implemented using wide range of technologies like SOAP, REST, CORBA, DCOM, RPC, Web Services.
  • Support all the standard information exchange interfaces like HTTP, XML, JDBC/ODBC.
  • Supports distributed architecture style and is scalable.
  • Many open source tools available like Sun JAXWS, Apache Web Services etc., WCF (Windows Communication Foundation) by Microsoft.
  • Provides enhanced security and encryption mechanisms.
Typical Telecom Application Architecture using SOA

image

Enterprise Service Bus
  • ESB provides core infrastructure for SOA.
  • Essential in deploying and managing distributed applications.
  • Typical use in middle layer for integrating between services.
  • Ensures loose coupling and acts as a message broker.
  • Uses XML as standard communication language.
  • Includes adapters for integration with legacy applications.
SOA Middleware Layers

image

Case Study

Application Requirement – Provide Web Based Application for Call Control Management and Directory Services Management For Call Centre Supervisors

Case Study - Solution

image

Case Study - Use of Open Source Tools

image

Case Study - Handling of Real Time Data
  • Use of ‘Comet’ component from GWT Rocket framework.
  • Stream data in the response of a long-lived HTTP connection. Reference: http://code.google.com/p/rocket-gwt/wiki/Comet 
  • A Comet Servlet is loaded in Java Servlet Container (e.g. Tomcat)
  • This Servlet implements HTTP streaming of events to the browser using simple RPC mechanism through poll() method.
  • At the client side, a comet session is started with creation of hidden iFrame which connects to Comet Servlet.
  • The Servlet periodically scans a event queue for new events and pushes the serialized objects to the client (browser). The iFrame gradually continues to grow due to incoming data.
  • After every session timeout, the client can close the iFrame to reclaim memory and then attempt to reconnect automatically.
Challenges and Alternatives

Challenges with SOA:

  • Managing SOA metadata
  • No standard tools for testing
  • Providing end-to-end security
  • Still in evolving stage

Alternatives for SOA

  • Session Initiation Protocol (SIP)
  • Parlay X

Next Generation Web Based Telecom Applications

Introduction
  • Telecom applications in today’s world are not merely limited to providing telephone connection across two locations.
  • Today’s telecom equipments make use of voice, data, and video communication mode and range from a simple telephone or mobile phones to wireless optical technologies used across in radars and satellites for scientific and military purposes.
  • However with rising demands of customers and with competitive market conditions, providing these services is coming across as a challenge.
  • So, Telecom Operators are transforming themselves into broader service oriented providers along with providing value additions to the end user. But this requires use of latest hardware and software technologies in an effective and smart way.
Use of Telecom Services

image

Need for Next Generation Architecture (NGA)
  • Telecom applications usually are tightly coupled with proprietary hardware used by Telecom Operators.
  • Due to the complexity involved in the nature of telecom applications, providing services which are readily available, secure and platform independent is a challenge.
  • With invent of new and upgraded hardware, telecom operators need to enhance their software platforms with latest technologies and architectures to support the new hardware.

So, following is one of the possible approaches:

image

Advantages of NGA

Following factors (individually or collectively) could result in the transition to NGA:

  • Low Development and Maintenance Cost
  • Improved Performance
  • Integration with latest tools and technologies
  • Robust and Fault-Tolerant systems
  • Multi Environment/Multi Platform Support
  • More secure and reliable
The SOA Architecture Pattern
  • Service-Oriented Architecture (SOA) breaks everyday business applications into individual processes and functions, called services.
  • SOA is a collection of services communicating with each other through standard interfaces and is designed to create a loosely connected architecture built up of reusable components.
  • From a developer’s point of view, SOA provides a programming model to build Web Services, which is the new buzzword in the software industry.
  • Many IT firms today are moving towards the use of Web Services in their applications for maximum benefit and SOA is one of the most popular architecture choices (e.g. British Telecom, IBM).
SOA Architecture Pattern – Key Points

image

Advantages of SOA
  • Can be run using Java and .Net platforms
  • Can be implemented using wide range of technologies like SOAP, REST, CORBA, DCOM, RPC, Web Services.
  • Support all the standard information exchange interfaces like HTTP, XML, JDBC/ODBC.
  • Supports distributed architecture style and is scalable.
  • Many open source tools available like Sun JAXWS, Apache Web Services etc., WCF (Windows Communication Foundation) by Microsoft.
  • Provides enhanced security and encryption mechanisms.
Typical Telecom Application Architecture using SOA

image

Enterprise Service Bus
  • ESB provides core infrastructure for SOA.
  • Essential in deploying and managing distributed applications.
  • Typical use in middle layer for integrating between services.
  • Ensures loose coupling and acts as a message broker.
  • Uses XML as standard communication language.
  • Includes adapters for integration with legacy applications.
SOA Middleware Layers

image

Case Study

Application Requirement – Provide Web Based Application for Call Control Management and Directory Services Management For Call Centre Supervisors

Case Study - Solution

image

Case Study - Use of Open Source Tools

image

Case Study - Handling of Real Time Data
  • Use of ‘Comet’ component from GWT Rocket framework.
  • Stream data in the response of a long-lived HTTP connection. Reference: http://code.google.com/p/rocket-gwt/wiki/Comet 
  • A Comet Servlet is loaded in Java Servlet Container (e.g. Tomcat)
  • This Servlet implements HTTP streaming of events to the browser using simple RPC mechanism through poll() method.
  • At the client side, a comet session is started with creation of hidden iFrame which connects to Comet Servlet.
  • The Servlet periodically scans a event queue for new events and pushes the serialized objects to the client (browser). The iFrame gradually continues to grow due to incoming data.
  • After every session timeout, the client can close the iFrame to reclaim memory and then attempt to reconnect automatically.
Challenges and Alternatives

Challenges with SOA:

  • Managing SOA metadata
  • No standard tools for testing
  • Providing end-to-end security
  • Still in evolving stage

Alternatives for SOA

  • Session Initiation Protocol (SIP)
  • Parlay X

Sep 29, 2009

Echo2 Web Framework- Like GWT

Echo is a platform for building web-based applications that approach the capabilities of rich clients. The applications are developed using a component-oriented and event-driven API, eliminating the need to deal with the "page-based" nature of browsers. To the developer, Echo works just like a user interface toolkit.

Echo2 is the current stable version of the framework. The 2.1RC releases are recommended for production use. A 2.1.0 version will be released in the very near future.



Download Echo2

Echo2 Web Framework- Like GWT

Echo is a platform for building web-based applications that approach the capabilities of rich clients. The applications are developed using a component-oriented and event-driven API, eliminating the need to deal with the "page-based" nature of browsers. To the developer, Echo works just like a user interface toolkit.

Echo2 is the current stable version of the framework. The 2.1RC releases are recommended for production use. A 2.1.0 version will be released in the very near future.



Download Echo2

Sep 23, 2009

GWT Portlets

GWTportlet
GWT Portlets is a free open source web framework for building GWT (Google Web Toolkit) applications. It defines a very simple & productive, yet powerful programming model to build good looking, modular GWT applications.

The programming model is somewhat similar to writing JSR168 portlets for a portal server (Liferay, JBoss Portal etc.). The "portal" is your application built using the GWT Portlets framework as a library. Application functionality is developed as loosely coupled Portlets each with an optional server side DataProvider.

Every Portlet knows how to externalize its state into a serializable PortletFactory subclass (momento / DTO / factory pattern) making important functionality possible:
  • CRUD operations are handled by a single GWT RPC for all Portlets
  • The layout of Portlets on a "page" can be represented as a tree of WidgetFactory's (an interface implemented by PortletFactory)
  • Trees of WidgetFactory's can be serialized and marshalled to/from XML on the server, to store GUI layouts (or "pages") in XML page files
Other important features of the framework are listed below:
  • Pages can be edited in the browser at runtime (by developers and/or users) using the framework layout editor
  • Portlets are positioned absolutely so can use scrolling regions
  • Portlets are configurable, indicate when they are busy loading for automatic "loading spinner" display and can be maximized
  • Themed widgets including a styled dialog box, a CSS styled button replacement, small toolbuttons and a HTML template driven menu
GWT Portlets is implemented in Java code and does not wrap any external Javascript libraries. It does not impose any server side framework (e.g. Spring or J2EE) but is designed to work well in conjunction with such frameworks.

source: http://code.google.com/p/gwtportlets/

GWT Portlets

GWTportlet
GWT Portlets is a free open source web framework for building GWT (Google Web Toolkit) applications. It defines a very simple & productive, yet powerful programming model to build good looking, modular GWT applications.

The programming model is somewhat similar to writing JSR168 portlets for a portal server (Liferay, JBoss Portal etc.). The "portal" is your application built using the GWT Portlets framework as a library. Application functionality is developed as loosely coupled Portlets each with an optional server side DataProvider.

Every Portlet knows how to externalize its state into a serializable PortletFactory subclass (momento / DTO / factory pattern) making important functionality possible:
  • CRUD operations are handled by a single GWT RPC for all Portlets
  • The layout of Portlets on a "page" can be represented as a tree of WidgetFactory's (an interface implemented by PortletFactory)
  • Trees of WidgetFactory's can be serialized and marshalled to/from XML on the server, to store GUI layouts (or "pages") in XML page files
Other important features of the framework are listed below:
  • Pages can be edited in the browser at runtime (by developers and/or users) using the framework layout editor
  • Portlets are positioned absolutely so can use scrolling regions
  • Portlets are configurable, indicate when they are busy loading for automatic "loading spinner" display and can be maximized
  • Themed widgets including a styled dialog box, a CSS styled button replacement, small toolbuttons and a HTML template driven menu
GWT Portlets is implemented in Java code and does not wrap any external Javascript libraries. It does not impose any server side framework (e.g. Spring or J2EE) but is designed to work well in conjunction with such frameworks.

source: http://code.google.com/p/gwtportlets/

Text Widget

Copyright © Vinay's Blog | Powered by Blogger

Design by | Blogger Theme by