 |
Web Services and XML Archives
A scenario based tutorial about using NetBeans BPEL, JBI and Web service developemt features
Posted by kalali on May 11, 2007 at 01:33 PM | Permalink
| Comments (3)
NetBeans Enterprise pack 5.5.1
provides several new features in as well as those ones in version 5.5. One of the
most important features is related to ESB. In this article I will cover some of
NetBeans capabilities to develop application based on the SOA paradigm.
You will see what ESB is and
how it can ease development and deployment. I will also show what BPEL is and how
it can affect your development, while demonstrating NetBeans’ level of support for
ESB and BPEL. Building a scenario-based sample which uses some of NetBeans Enterprise
Pack features in the BPEL and ESB area is the final things I will demonstrate.
What can an ESB do for us?
An ESB which can act as a JBI compliant
is an infrastructure that manages, monitors or enhances service's capabilities in
several ways like providing more connectivity mechanisms which has been added to
ESB by binding components. Binding components can interact with resources outside
the ESB. For example a JDBC binding component can act like a consumer and poll a
database table for new records and whenever new records become available transforms
them to a standard message named Normalized Message and sends it to the other participants
by using a message router named Normalized Message Router or NMR. Messages that
are produced by binding components may require transformation in order to meet business
rules or making usable messages for other binding components or service engines.
A service engine provides and consumes services within ESB. BPEL service engine
which hosts long running business process based on BPEL standard is as a sample
of service engine.
JBI compliant ESBs are based on XML-web
services standards and usually support several WS-I standards like WS-Addressing,
WS-Security and etc. When you install NetBeans enterprise pack you are adding a
wide range of capabilities to your IDE for developing composite applications which
are equal to JBI service assemblies. At the same time, installing Enterprise pack
will install a version of glassfish integrated with Open-ESB 2.0 that addresses
all your needs.
What is BPEL role in your
SOA?
I am not going to talk about technical
details of BPEL; I would prefer to say what it can do. BPEL allows us to orchestrate
some fine grained web services to perform a more coarse grained long lived asynchronous
or short lived synchronous business operations. For example you can develop a web
service that persists data based on some meta-data which are attached to your data,
a web service that check validation against pre-defined rules, a service that sends
email to some recipients. Now you can use BPEL and some other features that are
provided by BPEL engine to perform a business operation like order saving and customer
registration; so BPEL provides us with features that can highly reduce amount of
fine grained web services that we develop in our entire enterprise.
What does NetBeans as a development tools?
NetBeans enterprise pack provides
us with a first class designer for BPEL, WSDL and XSD. Another very good feature
that is introduced in Enterprise pack 5.5.1 is CASA editor.
Composite Application Service Assembly editor let developers to see a high-level
view of how the Service Assembly is connected and configured. More importantly,
users can modify connections between elements within the Service Assembly. The routing
of Service Units and Binding Components can be easily tweaked, or completely redone
as it provide visual editor enriched with a component palette for all available
artifacts like binding components and service units.
Continue Reading...
Netbeans 5.5 and Jdeveloper 10.1.3.1 both sounds very good...
Posted by kalali on August 25, 2006 at 07:15 AM | Permalink
| Comments (0)
Netbeans 5
Netbeans 5.5 and Jdeveloper 10.1.3.1 which one ?
Both Jdeveloper and Netbeans that i am talking about them are in beta and
developer preview stage.
Netbeans as an Opensource IDE has its own fast growing user community.
Netbeans 5.5 beta 2 let features include :
- develop and deploy on tomcat / Glassfish and Jboss out of the box.
- As core features it has many code generation facilitis which can help
to bootstrap an application ,it has code generation for CMPs , session
facades ,ws client stub....
- Having an almost first class profiler , first class J2me development
pack
- New c/c++ development pack
- good support for SVN and CVS
- very good Swing designer
- developer collaboration module
- Heavy support of SUN by giving the source codes for some of its extra
pack
which Made NetBeans a good choice for developers.
One of the packs that donated by sun· is Enterprise pack , Enterprise pack
features in brief are as follow :
- UML 2 compliant modeler
- visual BPEL
- visual WSDL designer
- xml visual tools for xml schema declaration ...
- facilities to develop web service and apply security on them.
Sun announced that it will add Java Studio creator to
NetBeans Stack as
another package. having Creator can attract many users to Netbeans as it provide a rich set
of feature for web application developers.
but what about Oracle JDeveloper 10.1.3.1?
some times ago Oracle announced that it will let developers to use
JBeveloper for free . so Jdeveloper and Netbeans from one point of view are
the same ,You will not pay any penny for them. Oracle really boosts JDeveloper in recent years which made JDeveloper a
choice for j2ee application developers JDeveloper Editor has changed to a very powerful editor with a good
refactoring support. opposite to Netbeans which you need to download several package to gain most
of its feature you will not need to download any extra package to make use
of jdeveloper as it is appropriated. ·
- Oracle have much more code generation falsities that Netbeans .
- visual ESB modeling allows you to assemble you ESB component visually
(its ESB is not JBI compliant)
- visual WSDL designer
- visual xml development tools
- good swing designer and data binding using oracle ADF
- good JSF / Struts support , indeed Jdeveloper JSF support with its ADF
faces is brilliant.
- WYSIWYG for HTML and jsp pages with support of third party jsf libraries
like Myfaces.
- first class database development facilities ( for oracle database mostly).
- Only you can use oracle server suite as development server there is no
support for other application servers.
- No support for c/c++ development (AFAIK).
- built-in profiler
- very powerful web page generation which can bootstrap a data driven web
page design.
- UML modeler (1.4 compliant)
- very rich set of facilities for Web service development
- ...
I think JDeveloper (for now) is ahead of NetBeans as it provide much more
facilities for developers , but for later version we can not tell anything
because NetBeans people are unpredictable , as they prove their credibility by
release of NetBeans 5.
What you have read is my opinion which might be biased. we never can say that
one IDE is 100% better than another , it is just context oriented and the users
view point. but one thing is completely obvious that JDeveloper and NetBeans
both are going to provide rich facilities for SOA. NetBeans by means of·
Enterprise pack and using glassfish with integrated BPMS from intalio and·
what it has acquired from seebyond.
and oracle with its SOA suite and JDeveloper , both are going to make choice
harder for developers.
overview of XML Parsing in java , different methods and libraries
Posted by kalali on April 24, 2006 at 05:00 AM | Permalink
| Comments (4)
Model / XML Parsing Library
what are different technologies and implementations to simply pars some XML files ?
What Java provide you to pars XML files ?
Iin this blog entry
After answering the above questions , i will introduce (by name and method of parsing) some XML parser available in java land.we may talk more about each of them in next entries.
First lets see what are different methods to pars XML files.
There are Two major XML parsing method , one of them is Old and Standard method using a DOM (Documet Object Model) and the other is Stream and Event Based Parsing.
- In DOM metod we fetch entiere XML document into memory and create a Objective representation of it in the memory then we can traverse the document using a very rich set of methods which DOM interfaces defined. So wen can access the document tree in any time and change its elements or attributes on emand.
But it will need a high amount of memory to store the Document Tree , so it is not suitable when you have resource (memory) limitation. as you know Current Browsers use this model, so we can easily use javaScript to access an elements and Change them in runtime base on our needs.Using DOM you can create and write XML files.
-
Other model Use Streaming and is event based, what does it means ? it means that it go trough the document from start to end , and as soon as it(the Streaming parser) sees some text nodes , attribute , Maleformed elements... it will trigger an Event which you are listening for , so it is a one way parsing which in , you can not change the elements or its attributes as you can do in DOM .In Streaming model you do not need a high amount of memory becasue you are not going to create a model of your document in memory.using Stream parsers you can create an XML file.
but we should notice that we have Another categorizing for XML parser refer to parser and client communication mechanism , there are two kind of communication mechanism between parsers and client that use those parsers , by this categorizing we have two kind of parses :
Parsers that we have had before StAX are push parsers, which parser push XML data to client whether it needs those data or not or even it is ready to recieve data or not.
Pull Parsers which come along with StaX parsers provide another mechanism for letting Client to have the data . it give the ability of asking for XML data to client , so Client will recive Data when it asks for those Data.
Now you should know that DOM / SAX are both push parsers , and the only pull parser implementation that i used is StAX.
some features that make StAX a suitable parsing method when you need just to pars xml files while there is no need to create or update an XML file, you should know that StAX is one was parser as SAX parsers are.
-
With StAX you can write XML documents too , meanwhile with SAX you can not write XML documents.
-
using StAX as i will show you in next part is much easier than using SAX
-
In pull parsing your own code has the control of Parser client Thread becasue its you that engage with Parser MeanWhile in a push parser it is parse that is mainStream in your code becase it parse and give the parsed data back to you whether you ask for it or not
-
You can works with several XML Streams (parsing and processing them ) in pull parsing mode when your client code is one thread, meanwhile you can not do this in a push parsing mode
Now Lets see what XML parsers support which models:
| Model / XML Parsing Library |
Crimson
1.1.3 |
Xerces
1.4.4 |
JAXP
1.3 |
NekoPull1
0.2.4 |
Piccolo
1.04 |
StAX
1.2 RC |
dom4j
1.6.1 |
| Push Parsing |
Yes |
Yes |
Yes |
No |
Yes |
No |
Yes |
| Pull Parsing |
No |
No |
No |
Yes |
No |
Yes |
No |
| Stream Parsing implementation (SAX) |
Yes |
Yes |
Yes |
Yes |
Yes |
Yes |
Yes |
| DOM Parsing implementation |
Yes |
Yes |
Yes |
No |
No |
No |
Yes |
1- It Extends XNI
to provide pull parsing.
|