What is a Web Services
There is no one agreed definition of the term "Web Services," as it is defined somewhat differently by the various software vendors who are providing this technology or using it in some form. The official definition of the term, as specified by the W3C, the World Wide Web Consortium—a global organization that designs, develops, promotes, and encourages standardization of Web-related technologies—is as follows:
"A Web service is a software system identified by a URI, whose public interfaces and bindings are defined and described using XML. Its definition can be discovered by other software systems. These systems may then interact with the Web service in a manner prescribed by its definition, using XML based messages conveyed by Internet protocols."
This is a fairly technical definition, so let's dissect it a little to understand what it means. To start with, let's look at some of the terminology that is used. (A good resource for all Web-related terminology can be found at Webopedia).
URI (Uniform Resource Identifier) is the generic term for all types of names and addresses that refer to objects on the Web. A URI designates a specific resource on the Internet and also designates a method to access the resource. The familiar URL (Uniform Resource Locator) we use to reference a particular web page is one kind of URI.
XML (extensible markup language) is a specification similar to HTML, but which goes beyond simple document presentation to capturing data in a meaningful and structured format so that it can be exchanged between applications that need that data. XML uses user-defined tags to describe data types, and also includes mechanisms to address and associate sets of data, referred to as resources. The XML specification comes from the same source, W3C, described earlier.
The Internet protocol in the Web Services definition refers primarily to SOAP (which was formerly an acronym for "Simple Object Access Protocol," but is now seen as just a name after growing into something that is no longer simple or object-access specific). SOAP is a lightweight XML-based messaging protocol, independent of any operating system, which encodes XML data as well as request and response messages before sending them over a network. Thus, while XML is used to tag the data to make it semantically meaningful, the actual process of transferring that data across a network is done using SOAP. In essence, SOAP is the glue that binds Web Services together. Other core protocols include WSDL, a specification for describing a Web Service (the service methods, message types, etc.), and UDDI, a mechanism to publish and discover Web Services.
Putting it all together and in less technical terms, Web Services is a technology that integrates different Web-based applications from different sources by allowing them to directly communicate data, semantics, and processes with each other, independent of any specific operating system or programming language, and automatically, without human intervention. The future trend in computing appears to be a move away from traditional desktop and client-server based applications towards applications that are fully developed and deployed over the Internet, that can also communicate with other Web-based applications dynamically in real-time to provide more integrated solutions to specific user tasks. Web Services is a crucial enabling technology for such applications, so we are likely to keep hearing a lot more about it in technology circles. Many of the leading high-tech companies are offering development platforms and environments that support Web Services, including Microsoft with .NET, IBM with Web Sphere, BEA Systems with Web Logic, and Sun Microsystems with the Sun Java Enterprise System. (Note that the IBM, BEA, and Sun products are all based on the Java platform.)
Web services with Net Beans 5.5
TIBCO
IBCO Software Inc. is a global company that develops integration software for companies including those in the energy, manufacturing, retail, healthcare, and financial services industries. Its headquarters is in Palo Alto, California, with offices in North America, Europe, Asia, the Middle East, Africa and South America. The company's major commercial competitors are IBM Oracle Corporation, and SAP AG.
In addition, TIBCO offers the message-oriented middleware products Rendezvous and Smart Sockets (from Talarian acquisition). In 2009, TIBCO enters the grid computing and cloud computing markets by acquiring Data Synapse.
TIBCO is an indirect successor to Teknekron Software Systems, Inc. Teknekron was formed in 1983 and produced a software product it called The Information Bus (TIB), which included as a substantial application the processing of stock quotes. In 1994, Teknekron was acquired by Reuters, but was spun out as a separate company in 1994, named Tibco, after the TIB product. In January 1997 Tibco Software Inc. was established as a separate entity to create and market software for integration of business applications outside the financial services sector. Reuters retained Tibco Finance to create and market software solutions for the financial services sector. In July 1999, Tibco went public on the Nasdaq Stock Market under the ticker symbol TIBX.
Greg the Architect
Starting in 2007, Tibco promoted video and print ads starring an action figure called "Greg the Architect. Since launching, the videos have been mentioned in numerous industry blogs, including the Wall Street Journal.
The campaign won an IAC Award (Internet Advertising Competition) in March 2007. They were then honored with the B to B Best Award for Best Online Campaign from B to B Magazine. "Greg" also won a Stevie Award for Best Corporate Film or Video in the Public Relations category at the 2007 American Business Awards.
Greg the Architect has been used in print as a comic strip in many industry magazines covering SOA and BPM. The campaign was also written about in a book from Harvard Business Press entitled Groundswell concerning marketing using social technology. In a blog written by the authors of Groundswell, Greg parodies himself.
By - Ramesh
Please find more topics under JASe Archive!!!
Thursday, October 1, 2009
WHAT'S NEW IN JAVA
JAVAFX
What is JavaFx
JavaFX is a software platform for creating and delivering rich Internet applications that can run across wide variety of connected devices. The current release (JavaFX 1.2, June 2009) enables building applications for desktop, browser and mobile phones. TV set-top boxes, gaming consoles, Blu-ray players and other platforms are planned
Over View
JavaFX is an expressive client platform for creating and delivering rich Internet experiences across all screens of your life. It combines the best capabilities of the Java platform with comprehensive, immersive media functionality into an intuitive and comprehensive, one-stop development environment.
Features
* Provides a unified development and deployment model for building rich client applications
* Enables you to easily integrate audio and video, graphics, rich text, and Web services
* Allows creative developers to program in a visual context
* Provides tools to build and deliver rich Internet applications for desktop, mobile, TV, and other consumer platforms
* Enables unprecedented collaboration between designers and developers
* Allows designers and Java developers to easily leverage the best of today's advanced enterprise software and rich Internet applications
Technology
JavaFX provides a productive development environment for web developers, mashup authors, and Java developers to quickly and easily build the next generation of rich internet applications (RIAs). With JavaFX, designers and developers can collaborate on building high-impact RIAs. Designers gain a broad set of tools to complete the designer/developer workflow, and developers have a simple, declarative scripting language with the right set of tools.
Latest Version
Java fx1.2 SDK
Current Release
1. The Java FX SDK: Java FX compiler and runtime tools. Graphics, media web services, and rich text libraries
2. Net Beans IDE for JavaFX: Net Beans with drag-and-drop palette to add objects with transformations, effects and animations plus set of samples and best practices. For Eclipse users there is a community-supported plugin hosted on Project Kenai
3. Tools and plug-in for creative tools (a.k.a. Production Suite): Plugins for Adobe Photoshop and Adobe Illustrator that can export graphics assets to JavaFX Script code, tools to convert SVG graphics into JavaFX Script code and preview assets converted to JavaFX from other tools.
Technical highlights
Common profile. JavaFX is based on the concept of a Common profile that is intended to span across all devices supported by JavaFX. This approach makes it possible for developers to use a common programming model while building an application targeted for both desktop and mobile devices and to share much of the code, graphics assets and content between desktop and mobile versions. To address the need for tuning applications for the needs of specific class of devices, the JavaFX 1.1 platform includes APIs that are desktop or mobile-specific. For example JavaFX Desktop profile includes Swing and advanced visual effects.
Drag-to-Install. From the point of view of the end user Drag-to-Install allows them to drag a JavaFX widget or application residing in a website within the browser window and drop it onto their desktop. The application will not lose its state or context even after the browser is closed. An application can also be re-launched by clicking on a shortcut that gets automatically created on the user's desktop. This behavior is enabled out-of-the-box by the Java applet mechanism and is leveraged by JavaFX from the underlying Java layer. Sun touts Drag-to-Install as opening up of a new distribution model and allowing developers to break away from the browser.
Integrating graphics created with third-party tools. JavaFX includes a set of plug-ins for Adobe Photoshop and Illustrator that enable advanced graphics to be integrated directly into JavaFX applications. The plug-ins generate JavaFX Script code that preserves layers and structure of the graphics. Developers can then easily add animation or effects to the static graphics imported. There is also an SVG graphics converter tool (a.k.a. Media Factory) that allows for importing graphics and previewing assets after the conversion to JavaFX format.
JavaFX 1.1
JavaFX for mobile development was finally made available as part of the JavaFX 1.1 release announced officially on February 12 2009.
JavaFX 1.2
JavaFX 1.2 was released at JavaOne on June 2, 2009. This release introduced [3]:
* Full support for Linux and Solaris,
* Built-in controls and layouts,
* Skinnable CSS controls,
* Built-in chart widgets,
* JavaFX I/O management, masking differences between desktop and mobile devices,
* Speed improvements.
By - Ravi
Please find more topics under JASe Archive!!!
What is JavaFx
JavaFX is a software platform for creating and delivering rich Internet applications that can run across wide variety of connected devices. The current release (JavaFX 1.2, June 2009) enables building applications for desktop, browser and mobile phones. TV set-top boxes, gaming consoles, Blu-ray players and other platforms are planned
Over View
JavaFX is an expressive client platform for creating and delivering rich Internet experiences across all screens of your life. It combines the best capabilities of the Java platform with comprehensive, immersive media functionality into an intuitive and comprehensive, one-stop development environment.
Features
* Provides a unified development and deployment model for building rich client applications
* Enables you to easily integrate audio and video, graphics, rich text, and Web services
* Allows creative developers to program in a visual context
* Provides tools to build and deliver rich Internet applications for desktop, mobile, TV, and other consumer platforms
* Enables unprecedented collaboration between designers and developers
* Allows designers and Java developers to easily leverage the best of today's advanced enterprise software and rich Internet applications
Technology
JavaFX provides a productive development environment for web developers, mashup authors, and Java developers to quickly and easily build the next generation of rich internet applications (RIAs). With JavaFX, designers and developers can collaborate on building high-impact RIAs. Designers gain a broad set of tools to complete the designer/developer workflow, and developers have a simple, declarative scripting language with the right set of tools.
Latest Version
Java fx1.2 SDK
Current Release
1. The Java FX SDK: Java FX compiler and runtime tools. Graphics, media web services, and rich text libraries
2. Net Beans IDE for JavaFX: Net Beans with drag-and-drop palette to add objects with transformations, effects and animations plus set of samples and best practices. For Eclipse users there is a community-supported plugin hosted on Project Kenai
3. Tools and plug-in for creative tools (a.k.a. Production Suite): Plugins for Adobe Photoshop and Adobe Illustrator that can export graphics assets to JavaFX Script code, tools to convert SVG graphics into JavaFX Script code and preview assets converted to JavaFX from other tools.
Technical highlights
Common profile. JavaFX is based on the concept of a Common profile that is intended to span across all devices supported by JavaFX. This approach makes it possible for developers to use a common programming model while building an application targeted for both desktop and mobile devices and to share much of the code, graphics assets and content between desktop and mobile versions. To address the need for tuning applications for the needs of specific class of devices, the JavaFX 1.1 platform includes APIs that are desktop or mobile-specific. For example JavaFX Desktop profile includes Swing and advanced visual effects.
Drag-to-Install. From the point of view of the end user Drag-to-Install allows them to drag a JavaFX widget or application residing in a website within the browser window and drop it onto their desktop. The application will not lose its state or context even after the browser is closed. An application can also be re-launched by clicking on a shortcut that gets automatically created on the user's desktop. This behavior is enabled out-of-the-box by the Java applet mechanism and is leveraged by JavaFX from the underlying Java layer. Sun touts Drag-to-Install as opening up of a new distribution model and allowing developers to break away from the browser.
Integrating graphics created with third-party tools. JavaFX includes a set of plug-ins for Adobe Photoshop and Illustrator that enable advanced graphics to be integrated directly into JavaFX applications. The plug-ins generate JavaFX Script code that preserves layers and structure of the graphics. Developers can then easily add animation or effects to the static graphics imported. There is also an SVG graphics converter tool (a.k.a. Media Factory) that allows for importing graphics and previewing assets after the conversion to JavaFX format.
JavaFX 1.1
JavaFX for mobile development was finally made available as part of the JavaFX 1.1 release announced officially on February 12 2009.
JavaFX 1.2
JavaFX 1.2 was released at JavaOne on June 2, 2009. This release introduced [3]:
* Full support for Linux and Solaris,
* Built-in controls and layouts,
* Skinnable CSS controls,
* Built-in chart widgets,
* JavaFX I/O management, masking differences between desktop and mobile devices,
* Speed improvements.
By - Ravi
Please find more topics under JASe Archive!!!
TIPS AND TRICKS
Java's First Garbage Collector
Sun released Java SE 6 Update 14, which included a version of the much-anticipated Garbage First (G1) garbage collector. G1 is a low-pause, low-latency, sometimes soft real-time, collector that allows you to set max pause time goals and collection intervals through suggestions on the Java VM command line. Although it cannot guarantee it, G1 will attempt to meet your goals, and hence introduce as little latency as possible into your application. This in turn may also make the VM run more predictably as it attempts to meet the pause time goals you provide.
Garbage-First is a server-style garbage collector, targeted for multi-processors with large memories, that meets a soft real-time goal with high probability. It does this while also achieving high throughput, which is an important point when comparing it to other real-time collectors.
The G1 collector divides its work into multiple phases, each described below, which operate on a heap broken down into equally sized regions. In the strictest sense, the heap doesn't contain generational areas, although a subset of the regions can be treated as such. This provides flexibility in how garbage collection is performed, which is adjusted on-the-fly according to the amount of processor time available to the collector.
By – Chaitanya
Open Source Load Testing Tool for Java Applications (JMeter)
This is an Ant task for automating running JMeter test plans. The task executes one or more JMeter test plans, and logs the results to a file.
To use the task, you must have JMeter installed. You must also include ant-jmeter-1.0.9.jar in your Ant class path. Adding the jar to $ANT_HOME/lib will make this happen automatically.
Start by defining the task to make it available to your build script:
name="jmeter"
classname="org.programmerplanet.ant.taskdefs.jmeter.JMeterTask"/>
Set the jmeterhome parameter to your JMeter install location, and the resultlog parameter to the name of a file to log the test results to.
You can either specify a single test plan using the testplan parameter, or multiple test plans using the testplans nested element. The testplans element is a standard Ant FileSet element.
jmeterhome="c:\jakarta-jmeter-1.8.1"
testplan="${basedir}/loadtests/JMeterLoadTest.jmx"
resultlog="${basedir}/loadtests/JMeterResults.jtl"/>
jmeterhome="c:\jakarta-jmeter-1.8.1"
resultlog="${basedir}/loadtests/JMeterResults.jtl">
Optional JMeter arguments supported include specifying an alternate jmeter properties file (jmeterproperties), running remote servers specified in jmeter properties file (runremote), and running the tests through a proxy or firewall (proxyhost, proxyport, proxyuser, proxypass).
Setting the failureProperty attribute will set the specified property to "true" in the event of a JMeter test failure. This gives you the opportunity to take further action such as send an email or fail the build.
You can override JMeter properties (instead of modifying jmeter.properties) like this:
jmeterhome="c:\jakarta-jmeter-1.8.1"
testplan="${basedir}/loadtests/JMeterLoadTest.jmx"
resultlog="${basedir}/loadtests/JMeterResults.jtl">
You may also specify additional JVM arguments to the JVM launched to run JMeter. Here is an example of how to specify JVM arguments:
jmeterhome="c:\jakarta-jmeter-1.8.1"
testplan="${basedir}/loadtests/JMeterLoadTest.jmx"
resultlog="${basedir}/loadtests/JMeterResults.jtl">
I've also included an XSLT file, jmeter-results-report.xsl, for generating a summary report from the result log file. The summary report is very similar to the default report created by the junitreport task. You can use the xslt task to create the report:
in="${basedir}/loadtests/JMeterResults.jtl"
out="${basedir}/loadtests/JMeterResults.html"
style="${basedir}/loadtests/jmeter-results-report.xsl"/>
Note: If you are using JMeter 2.1 or later, you must use the new xslt stylesheet(s) included in the JMeter extras directory. The new stylesheets have been modified to support the new JMeter log file format.
If you would like failure detail messages in the report output, you must configure JMeter to output that information to the result log. To do this, set the following property in your jmeter.properties file before running the test plans:
jmeter.save.saveservice.assertion_results=all
Note: As of JMeter 1.9RC2 (?), the default results output format is now csv. It must be changed to xml in order to use the xslt task to create the html report
By – Bavan
How to improve Java's I/O performance
The JDK 1.0.2 java.io package has meant problems for I/O performance, but here's a tip for making the situation better -- plus an extra tip on turning off synchronization
Java's I/O performance has been a bottleneck for a lot of Java applications because of a poorly designed and implemented JDK 1.0.2 java.io package. A key problem is buffer -- most classes in java.io are not buffered. In fact, the only classes with buffers are BufferedInputStream and BufferedOutputStream, but they provide very limited methods. For example, in most file-related applications, you need to parse a file line by line. But the only class that provides the readLine method is the DataInputStream, and it has no internal buffer. The readLine method in the DataInputStream class actually reads the input stream character by character until it hits a "\n" or "\r\n". Each character-read operation involves file I/O. This is extremely inefficient when reading a large file. A 5-megabyte file requires at least 5 million character-read file I/O operations when no buffer is provided.
The new JDK 1.1 improves I/O performance with the addition of a collection of Reader and Writer classes. The readLine method in BufferedReader is at least 10 to 20 times faster than the one in DataInputStream when a large file is encountered. Unfortunately, JDK 1.1 does not solve all the performance problems. For example, RandomAccessFile is a very useful class when you want to parse a large file and do not want to read it into memory. Still it is not buffered in JDK 1.1, and no equivalent Reader class has been provided.
By – Arun GJ
Please find more topics under JASe Archive!!!
Sun released Java SE 6 Update 14, which included a version of the much-anticipated Garbage First (G1) garbage collector. G1 is a low-pause, low-latency, sometimes soft real-time, collector that allows you to set max pause time goals and collection intervals through suggestions on the Java VM command line. Although it cannot guarantee it, G1 will attempt to meet your goals, and hence introduce as little latency as possible into your application. This in turn may also make the VM run more predictably as it attempts to meet the pause time goals you provide.
Garbage-First is a server-style garbage collector, targeted for multi-processors with large memories, that meets a soft real-time goal with high probability. It does this while also achieving high throughput, which is an important point when comparing it to other real-time collectors.
The G1 collector divides its work into multiple phases, each described below, which operate on a heap broken down into equally sized regions. In the strictest sense, the heap doesn't contain generational areas, although a subset of the regions can be treated as such. This provides flexibility in how garbage collection is performed, which is adjusted on-the-fly according to the amount of processor time available to the collector.
By – Chaitanya
Open Source Load Testing Tool for Java Applications (JMeter)
This is an Ant task for automating running JMeter test plans. The task executes one or more JMeter test plans, and logs the results to a file.
To use the task, you must have JMeter installed. You must also include ant-jmeter-1.0.9.jar in your Ant class path. Adding the jar to $ANT_HOME/lib will make this happen automatically.
Start by defining the task to make it available to your build script:
classname="org.programmerplanet.ant.taskdefs.jmeter.JMeterTask"/>
Set the jmeterhome parameter to your JMeter install location, and the resultlog parameter to the name of a file to log the test results to.
You can either specify a single test plan using the testplan parameter, or multiple test plans using the testplans nested element. The testplans element is a standard Ant FileSet element.
testplan="${basedir}/loadtests/JMeterLoadTest.jmx"
resultlog="${basedir}/loadtests/JMeterResults.jtl"/>
resultlog="${basedir}/loadtests/JMeterResults.jtl">
Optional JMeter arguments supported include specifying an alternate jmeter properties file (jmeterproperties), running remote servers specified in jmeter properties file (runremote), and running the tests through a proxy or firewall (proxyhost, proxyport, proxyuser, proxypass).
Setting the failureProperty attribute will set the specified property to "true" in the event of a JMeter test failure. This gives you the opportunity to take further action such as send an email or fail the build.
You can override JMeter properties (instead of modifying jmeter.properties) like this:
testplan="${basedir}/loadtests/JMeterLoadTest.jmx"
resultlog="${basedir}/loadtests/JMeterResults.jtl">
You may also specify additional JVM arguments to the JVM launched to run JMeter. Here is an example of how to specify JVM arguments:
testplan="${basedir}/loadtests/JMeterLoadTest.jmx"
resultlog="${basedir}/loadtests/JMeterResults.jtl">
I've also included an XSLT file, jmeter-results-report.xsl, for generating a summary report from the result log file. The summary report is very similar to the default report created by the junitreport task. You can use the xslt task to create the report:
out="${basedir}/loadtests/JMeterResults.html"
style="${basedir}/loadtests/jmeter-results-report.xsl"/>
Note: If you are using JMeter 2.1 or later, you must use the new xslt stylesheet(s) included in the JMeter extras directory. The new stylesheets have been modified to support the new JMeter log file format.
If you would like failure detail messages in the report output, you must configure JMeter to output that information to the result log. To do this, set the following property in your jmeter.properties file before running the test plans:
jmeter.save.saveservice.assertion_results=all
Note: As of JMeter 1.9RC2 (?), the default results output format is now csv. It must be changed to xml in order to use the xslt task to create the html report
By – Bavan
How to improve Java's I/O performance
The JDK 1.0.2 java.io package has meant problems for I/O performance, but here's a tip for making the situation better -- plus an extra tip on turning off synchronization
Java's I/O performance has been a bottleneck for a lot of Java applications because of a poorly designed and implemented JDK 1.0.2 java.io package. A key problem is buffer -- most classes in java.io are not buffered. In fact, the only classes with buffers are BufferedInputStream and BufferedOutputStream, but they provide very limited methods. For example, in most file-related applications, you need to parse a file line by line. But the only class that provides the readLine method is the DataInputStream, and it has no internal buffer. The readLine method in the DataInputStream class actually reads the input stream character by character until it hits a "\n" or "\r\n". Each character-read operation involves file I/O. This is extremely inefficient when reading a large file. A 5-megabyte file requires at least 5 million character-read file I/O operations when no buffer is provided.
The new JDK 1.1 improves I/O performance with the addition of a collection of Reader and Writer classes. The readLine method in BufferedReader is at least 10 to 20 times faster than the one in DataInputStream when a large file is encountered. Unfortunately, JDK 1.1 does not solve all the performance problems. For example, RandomAccessFile is a very useful class when you want to parse a large file and do not want to read it into memory. Still it is not buffered in JDK 1.1, and no equivalent Reader class has been provided.
By – Arun GJ
Please find more topics under JASe Archive!!!
Subscribe to:
Posts (Atom)