XForms provides a strict processing model for XML content. The XForms
standard defines controls (text input, combo boxes, text areas, and
more) that allow for editing text within a given XML element or
attribute. Using the proliferation of rich text editing across many
Web-based applications (such as e-mail, blogs, and wikis), the XForms
set of controls can be expanded to accommodate this. This article
shows to extend the standard XForms set of controls to provide this
rich text editing. There are many HTML and ECMAScript rich text
editors for HTML content;for the purposes of this article, we use
Dojo, and provide a sample using FCKEditor as well. Since we require
XForms and a rich text editor, we also need a mechanism to bind the
editor's content to an XForm's instance. This could be accomplished
by writing a bunch of JavaScript or using another technology for
binding user instance controls, called XML Binding Language (XBL).
Mozilla XForms provides a way of extending existing user interface
controls using XBL, which also makes this choice desirable. By
following some of the integration rules defined by XForms, XBL, and
a rich text editor, the end result is a simple and powerful addition
to the XForms set of controls. This can further enable the application
of XForms in a variety of applications, such as blogs, e-mails, social
networking sites, and more. These can then leverage the built-in
capabilities of XForms for validation, XML submission, declarative
programming, and more. More Information See also XML and Forms: Click Here
Tuesday, October 30, 2007
XForms 1.0 Third Edition Published as a W3C Recommendation
W3C has announced the publication of "XForms 1.0 (Third Edition)" as a
W3C Recommendation, signifying that there is significant support for
the specification from the Advisory Committee, the W3C Team, W3C Working
groups, and the public. Forms are an important part of the Web, and they
continue to be the primary means for enabling interactive Web applications.
Web applications and electronic commerce solutions have sparked the
demand for better Web forms with richer interactions. XForms 1.0 is the
response to this demand, and provides a new platform-independent markup
language for online interaction between a person (through an XForms
Processor) and another agent, usually remote. XForms is an XML application
that represents the next generation of forms for the Web. It splits
traditional XHTML forms into three parts: XForms model, instance data,
and user interface. By this means, XForms separates presentation from
content, allows reuse, and provides strong typing. This design reduces
the number of round-trips to the server, and offers device independence
with a reduced need for scripting. XForms 1.0 XForms striva to improve
authoring, reuse, internationalization, accessibility, and overall
usability. The XForms Recommendation document responds to implementor
feedback, brings the XForms 1.0 Recommendation up to date with second
edition errata, and reflects clarifications already implemented in XForms
processors. W3C reports that the Recommendation-level specification
contains 343 diffs that have significantly hardened XForms for enterprise
deployment. The XForms 1.0 Third Edition Test Suite was used in
interoperability testing, including tests for: Document Structure;
Processing Model; Datatypes; Model Item Properties; XPath Expressions
in XForms; Form Controls; XForms User Interface; XForms Actions; Submit
Function; XForms and Styling. More than twenty-five (25) XForms
Implementations were reported as of 2007-10-29. More Information
W3C Recommendation, signifying that there is significant support for
the specification from the Advisory Committee, the W3C Team, W3C Working
groups, and the public. Forms are an important part of the Web, and they
continue to be the primary means for enabling interactive Web applications.
Web applications and electronic commerce solutions have sparked the
demand for better Web forms with richer interactions. XForms 1.0 is the
response to this demand, and provides a new platform-independent markup
language for online interaction between a person (through an XForms
Processor) and another agent, usually remote. XForms is an XML application
that represents the next generation of forms for the Web. It splits
traditional XHTML forms into three parts: XForms model, instance data,
and user interface. By this means, XForms separates presentation from
content, allows reuse, and provides strong typing. This design reduces
the number of round-trips to the server, and offers device independence
with a reduced need for scripting. XForms 1.0 XForms striva to improve
authoring, reuse, internationalization, accessibility, and overall
usability. The XForms Recommendation document responds to implementor
feedback, brings the XForms 1.0 Recommendation up to date with second
edition errata, and reflects clarifications already implemented in XForms
processors. W3C reports that the Recommendation-level specification
contains 343 diffs that have significantly hardened XForms for enterprise
deployment. The XForms 1.0 Third Edition Test Suite was used in
interoperability testing, including tests for: Document Structure;
Processing Model; Datatypes; Model Item Properties; XPath Expressions
in XForms; Form Controls; XForms User Interface; XForms Actions; Submit
Function; XForms and Styling. More than twenty-five (25) XForms
Implementations were reported as of 2007-10-29. More Information
World Wide Web Consortium Launches Office In Brazil
W3C announced the launch of its first W3C Office in South America: the
W3C Brazil Office, hosted by the NIC.br (Brazilian Network Information
Center) institute, in Sao Paulo, Brazil. W3C looks forward to increasing
interaction with the Portuguese-speaking community through this Office.
Moreover, the current IT landscape in Brazil aligns with exciting
current trends at W3C, such as mobile Web, Web applications, and video
on the Web. Brazil ranks with Russia, India and China -- countries
identified by the acronym BRIC in a 2003 report by the Goldman Sachs
Investment Bank -- as a rapidly growing emerging economy. According to
the report, these economies together may well surpass most of today's
richest countries by the year 2050. Initiatives from the private sector
and efforts by government agencies have promoted investment in business
and infrastructure, from domestic and international investors alike.
Brazil's diversity places the country in a position of distinction in
the South American continent and strongly influences the attraction of
foreign investment. It is the fifth largest country on the planet,
responsible for a very promising, predominantly urban, market.
Approximately 40 million Brazilians have Internet access, the highest
number of Internet users of any country in Latin America.
Telecommunications Industry News reported in October 2007 that the
number of wireless users in Brazil exceeds 112 million. Brazilian
companies compete effectively in a global market, and have delivered
world class solutions in areas of mobile banking, open-source technology,
Web accessibility, wireless Internet access, games industry, e-government
solutions and HD digital television. Regarding HDTV, the development
of a specific model of digital television turns the Brazilian market
into a gigantic laboratory for studying the application of that
technology. As its Members work to realize the full potential of the
Web, W3C collaborates with regional organizations wishing to further
W3C's mission. The W3C Offices assist with promotion efforts in local
languages, help broaden W3C's geographical base, and encourage
international participation in W3C Activities. W3C has Offices in
Australia; the Benelux countries; Brazil; China; Finland; Germany and
Austria; Greece; Hungary; India; Israel; Italy; Korea; Morocco; Southern
Africa; Spain; Sweden; and the United Kingdom and Ireland. More Information See also the Brazilian W3C web site: Click Here
W3C Brazil Office, hosted by the NIC.br (Brazilian Network Information
Center) institute, in Sao Paulo, Brazil. W3C looks forward to increasing
interaction with the Portuguese-speaking community through this Office.
Moreover, the current IT landscape in Brazil aligns with exciting
current trends at W3C, such as mobile Web, Web applications, and video
on the Web. Brazil ranks with Russia, India and China -- countries
identified by the acronym BRIC in a 2003 report by the Goldman Sachs
Investment Bank -- as a rapidly growing emerging economy. According to
the report, these economies together may well surpass most of today's
richest countries by the year 2050. Initiatives from the private sector
and efforts by government agencies have promoted investment in business
and infrastructure, from domestic and international investors alike.
Brazil's diversity places the country in a position of distinction in
the South American continent and strongly influences the attraction of
foreign investment. It is the fifth largest country on the planet,
responsible for a very promising, predominantly urban, market.
Approximately 40 million Brazilians have Internet access, the highest
number of Internet users of any country in Latin America.
Telecommunications Industry News reported in October 2007 that the
number of wireless users in Brazil exceeds 112 million. Brazilian
companies compete effectively in a global market, and have delivered
world class solutions in areas of mobile banking, open-source technology,
Web accessibility, wireless Internet access, games industry, e-government
solutions and HD digital television. Regarding HDTV, the development
of a specific model of digital television turns the Brazilian market
into a gigantic laboratory for studying the application of that
technology. As its Members work to realize the full potential of the
Web, W3C collaborates with regional organizations wishing to further
W3C's mission. The W3C Offices assist with promotion efforts in local
languages, help broaden W3C's geographical base, and encourage
international participation in W3C Activities. W3C has Offices in
Australia; the Benelux countries; Brazil; China; Finland; Germany and
Austria; Greece; Hungary; India; Israel; Italy; Korea; Morocco; Southern
Africa; Spain; Sweden; and the United Kingdom and Ireland. More Information See also the Brazilian W3C web site: Click Here
Field Report: MIX Proves XBRL Handles More than Statutory Reporting
Most people who have heard of Extensible Business Reporting Language
(XBRL) associate it with regulatory submissions. U.S.-based public
companies have the option of filing XBRL-tagged results with the
Securities and Exchange Commission (SEC), but it is used more
intensively elsewhere. For example, XBRL is now mandatory for companies
listed on the Shanghai Stock Exchange (among others), and banks now
routinely use XBRL to file financial reports with the U.S. Federal
Deposit Insurance Corporation (FDIC), the Bank of Japan and other
oversight bodies. XBRL has the potential to be even more useful than
this, particularly since the "extensible" aspect of the language
means that any organization can create its own taxonomy to collect
any kind of information. One organization that is pulling in both
standard accounting information and other performance metrics is the
Microfinance Information Exchange (MIX). MIX uses a microfinance-specific
version of the International Financial Reporting System (IFRS) taxonomy,
so the accounting data adheres to a broadly supported standard. And
because XBRL is extensible, it enables MIX to add its own taxonomy for
social reporting metrics. Extensibility facilitates the evolution of
the information MIX collects and allows it to make apples-to-apples
comparisons over time. MIX is in the final stages of system development
and will open its XBRL-enabled system to participating institutions
soon. MIX is an early example of how organizations other than financial
regulators will use XBRL to manage the exchange of data among multiple
entities (corporations, nonprofits, nongovernmental organizations and
others). This is especially true because XBRL allows the data collection
process to have low overhead and take a lowest-common-denominator
approach. More Information See also the XBRL FAQ document: Click Here
(XBRL) associate it with regulatory submissions. U.S.-based public
companies have the option of filing XBRL-tagged results with the
Securities and Exchange Commission (SEC), but it is used more
intensively elsewhere. For example, XBRL is now mandatory for companies
listed on the Shanghai Stock Exchange (among others), and banks now
routinely use XBRL to file financial reports with the U.S. Federal
Deposit Insurance Corporation (FDIC), the Bank of Japan and other
oversight bodies. XBRL has the potential to be even more useful than
this, particularly since the "extensible" aspect of the language
means that any organization can create its own taxonomy to collect
any kind of information. One organization that is pulling in both
standard accounting information and other performance metrics is the
Microfinance Information Exchange (MIX). MIX uses a microfinance-specific
version of the International Financial Reporting System (IFRS) taxonomy,
so the accounting data adheres to a broadly supported standard. And
because XBRL is extensible, it enables MIX to add its own taxonomy for
social reporting metrics. Extensibility facilitates the evolution of
the information MIX collects and allows it to make apples-to-apples
comparisons over time. MIX is in the final stages of system development
and will open its XBRL-enabled system to participating institutions
soon. MIX is an early example of how organizations other than financial
regulators will use XBRL to manage the exchange of data among multiple
entities (corporations, nonprofits, nongovernmental organizations and
others). This is especially true because XBRL allows the data collection
process to have low overhead and take a lowest-common-denominator
approach. More Information See also the XBRL FAQ document: Click Here
Radar Networks Ties Together Web 2.0, Semantic Web With 'Twine'
This article presents an online knowledge management service that ties
together social networking, wikis, and blogging with RDF, OWL, SPARQL,
and XSL technologies. Startup Radar Networks has launched in private
beta an online knowledge management system that's among the first to
use computer-driving semantic Web technologies to find and organize
information for people. Called Twine, the service was unveiled at the
Web 2.0 Summit in San Francisco last week. The service has elements of
Web 2.0 technologies, such as social networking, wikis, and blogging,
but goes a step further with an underlying platform built on Web 3.0
technologies defined by the Worldwide Web Consortium. Those technologies
include RDF (Resource Definition Framework), OWL (a markup language),
SPARQL (an RDF query language), and XSL (Extensible Stylesheet Language).
In general, the service enables a person, or groups of people, to
organize information and share it with others. People can upload
contacts, pictures, and documents from their desktops, and save text,
videos, and images from Web sites. Twine also uses software agents to
import content and metadata from other sites, based on the knowledge
the system builds about the user... Data brought into Twine is analyzed
and tagged, with the system understanding if the keywords refer to
people, places, or things. The tags are listed on a user's Twine page.
Clicking on the keyword will bring up all the related information
saved by the user or shared by other people in his network. Radar
Networks, funded by Leapfrog Ventures and Microsoft co-founder Paul
Allen's Vulcan Capital, believes that the semantic Web will enable it
to build a knowledge network that provides users with a richer
experience than other services using older technologies. More Information See also Tim O'Reilly's blog: Click Here
together social networking, wikis, and blogging with RDF, OWL, SPARQL,
and XSL technologies. Startup Radar Networks has launched in private
beta an online knowledge management system that's among the first to
use computer-driving semantic Web technologies to find and organize
information for people. Called Twine, the service was unveiled at the
Web 2.0 Summit in San Francisco last week. The service has elements of
Web 2.0 technologies, such as social networking, wikis, and blogging,
but goes a step further with an underlying platform built on Web 3.0
technologies defined by the Worldwide Web Consortium. Those technologies
include RDF (Resource Definition Framework), OWL (a markup language),
SPARQL (an RDF query language), and XSL (Extensible Stylesheet Language).
In general, the service enables a person, or groups of people, to
organize information and share it with others. People can upload
contacts, pictures, and documents from their desktops, and save text,
videos, and images from Web sites. Twine also uses software agents to
import content and metadata from other sites, based on the knowledge
the system builds about the user... Data brought into Twine is analyzed
and tagged, with the system understanding if the keywords refer to
people, places, or things. The tags are listed on a user's Twine page.
Clicking on the keyword will bring up all the related information
saved by the user or shared by other people in his network. Radar
Networks, funded by Leapfrog Ventures and Microsoft co-founder Paul
Allen's Vulcan Capital, believes that the semantic Web will enable it
to build a knowledge network that provides users with a richer
experience than other services using older technologies. More Information See also Tim O'Reilly's blog: Click Here
SOA Grid: Grid-Enabled SOA for Scalability
The use of data-grid technology in service-oriented architectures
(SOAs) was the subject of a keynote address at the first annual IT
Architect Regional Conference in San Diego, which took place last week.
Dave Chappell, Oracle's VP and chief technologist for SOA, spoke on
the topic of "Next Generation Grid Enabled SOA" at the IASA event.
Chappell described the sort of problems that happen when processing
large amounts of XML data and trying to ensure reliability and
scalability in an SOA. Oracle's model for grid-enabled SOA stems from
technology that the company acquired about seven or eight months ago
when it acquired Tangosol. Oracle now offers this technology for
mission-critical applications, typically involving extreme transaction
processing, through its Coherence product line. A few noteworthy
technologies and concepts have helped enable SOAs, including: (1) The
use of business process orchestration tools, such as Business Process
Execution Language (BPEL) engines; (2) Basic SOA patterns for building
composite apps that are constructed from service functionalities; (3)
Loose coupling and modularity. However, in the process of using these
technologies -- and by choosing to use XML as the means for exchanging
data between apps and services -- the size of the data that is being
shipped around has been inflated by a factor of five, Chappell said.
With SOA, application silos are separated out and exposed as services.
Such an arrangement presents problems in how to share and manage
information across these services. More Information
(SOAs) was the subject of a keynote address at the first annual IT
Architect Regional Conference in San Diego, which took place last week.
Dave Chappell, Oracle's VP and chief technologist for SOA, spoke on
the topic of "Next Generation Grid Enabled SOA" at the IASA event.
Chappell described the sort of problems that happen when processing
large amounts of XML data and trying to ensure reliability and
scalability in an SOA. Oracle's model for grid-enabled SOA stems from
technology that the company acquired about seven or eight months ago
when it acquired Tangosol. Oracle now offers this technology for
mission-critical applications, typically involving extreme transaction
processing, through its Coherence product line. A few noteworthy
technologies and concepts have helped enable SOAs, including: (1) The
use of business process orchestration tools, such as Business Process
Execution Language (BPEL) engines; (2) Basic SOA patterns for building
composite apps that are constructed from service functionalities; (3)
Loose coupling and modularity. However, in the process of using these
technologies -- and by choosing to use XML as the means for exchanging
data between apps and services -- the size of the data that is being
shipped around has been inflated by a factor of five, Chappell said.
With SOA, application silos are separated out and exposed as services.
Such an arrangement presents problems in how to share and manage
information across these services. More Information
Microsoft Sets Oslo Project for Model-Centric Applications
Microsoft has unveiled what could be an industry-changing effort in
application modeling and SOA with its "Oslo" project -- which could
significantly change the equation in the Windows application deployment
space. Part of Oslo involves delivering a unified platform integrating
services and modeling, Microsoft said. But instead of models describing
the application, models are the applications themselves. Oslo is a
codename for a set of technical investments that will be delivered in
the next major versions of Microsoft's platform products; these products
include Visual Studio, System Center, BizTalk Server, BizTalk Services,
and the .Net Framework. Beta releases of Oslo technology are due in
2008. With Oslo, Microsoft is making investments aligned with a vision
to simplify the effort needed to build, deploy, and manage composite
applications within and across organizations. The effort builds on
model-driven and service-enabled principles and extends SOA beyond
the firewall. Featured in Oslo are three fundamental components: a
modeling environment, a business process server, including a significant
evolution of BizTalk Server, and a new deployment model. BizTalk Server
"6," will continue to offer technology for distributed SOA and BPM and
include capabilities for composite applications. BizTalk Services "1,"
which provides BizTalk capabilities within the cloud, will feature
Web-based services for hosting composite applications that cross
organizational boundaries; advanced messaging, identity, and workflow
will be featured. Metadata repositories will be aligned across server
and tools products, including System Center "5," Visual Studio "10,"
and BizTalk Server "6." Each will utilize repository technology for
managing, versioning, and deployment models. Release dates of
Oslo-driven products have not been set. More Information
application modeling and SOA with its "Oslo" project -- which could
significantly change the equation in the Windows application deployment
space. Part of Oslo involves delivering a unified platform integrating
services and modeling, Microsoft said. But instead of models describing
the application, models are the applications themselves. Oslo is a
codename for a set of technical investments that will be delivered in
the next major versions of Microsoft's platform products; these products
include Visual Studio, System Center, BizTalk Server, BizTalk Services,
and the .Net Framework. Beta releases of Oslo technology are due in
2008. With Oslo, Microsoft is making investments aligned with a vision
to simplify the effort needed to build, deploy, and manage composite
applications within and across organizations. The effort builds on
model-driven and service-enabled principles and extends SOA beyond
the firewall. Featured in Oslo are three fundamental components: a
modeling environment, a business process server, including a significant
evolution of BizTalk Server, and a new deployment model. BizTalk Server
"6," will continue to offer technology for distributed SOA and BPM and
include capabilities for composite applications. BizTalk Services "1,"
which provides BizTalk capabilities within the cloud, will feature
Web-based services for hosting composite applications that cross
organizational boundaries; advanced messaging, identity, and workflow
will be featured. Metadata repositories will be aligned across server
and tools products, including System Center "5," Visual Studio "10,"
and BizTalk Server "6." Each will utilize repository technology for
managing, versioning, and deployment models. Release dates of
Oslo-driven products have not been set. More Information
Give Your Applications Mapping Capabilities, Part 1
Some of the most interesting features of modern web sites are based
on Geographical Information System (GIS) technologies. GIS techniques
essentially give you a way to manage and show geographical data in
your systems. For example, a manufacturing company can display a map
showing every building it occupies, every office in a building, or
the location of every sale it makes (worldwide), or a cab company can
use GIS data to track the position of its cabs nearly in real time.
Not too long ago, the expense and rarity of the maps themselves hindered
the use of GIS data in applications, but today, full-featured maps are
available through Google Maps, Google Earth, and Microsoft Virtual
Earth (among others) that you can use to display your GIS data in web
applications. The advent of such mapping systems is one of the most
exciting technologies to emerge in the last few years -- and they're
still undergoing constant and rapid evolution. Today, you can easily
collect geographical data, analyze and filter that data, and merge it
with a mapping provider to create maps that display the data to your
users. This article gives you a launch point by exploring what GIS data
is, how to collect it, and how to manage it. The first step in developing
a GIS business system is to collect the geographical data, a process
interchangeably called geomapping or geocoding. Both terms refer to
the process of retrieving the real-world position of the objects or
places you want to map. This process is simple for single-pointed
objects, either static or moving, such as a building, a car, an antenna --
objects you would show as a point on a map. But the process becomes more
difficult when you want to map lines and areas. Fortunately, the
technologies involved are basically the same; first you learn how to
work with points, and then you extend the process to work with lines
(pairs of points) and then areas (sequences of lines)... An example
Google Earth XML structure is written in an XML language called Keyhole
Markup Language (KML). The most important portion of the code is the
'Point' element, which defines a point using the 'coordinates' node;
the 'coordinates' node takes three comma-separated values that specify
longitude, latitude, and altitude... Getting started with GID
applications is quite simple: you collect points via GPS or existing
maps, and render them using a mapping application. You don't need
expensive hardware, and you can write simple software without too much
work. With a little effort, you can write exciting business applications
that feature 2D maps or 3D earth-rendering systems. More Information
on Geographical Information System (GIS) technologies. GIS techniques
essentially give you a way to manage and show geographical data in
your systems. For example, a manufacturing company can display a map
showing every building it occupies, every office in a building, or
the location of every sale it makes (worldwide), or a cab company can
use GIS data to track the position of its cabs nearly in real time.
Not too long ago, the expense and rarity of the maps themselves hindered
the use of GIS data in applications, but today, full-featured maps are
available through Google Maps, Google Earth, and Microsoft Virtual
Earth (among others) that you can use to display your GIS data in web
applications. The advent of such mapping systems is one of the most
exciting technologies to emerge in the last few years -- and they're
still undergoing constant and rapid evolution. Today, you can easily
collect geographical data, analyze and filter that data, and merge it
with a mapping provider to create maps that display the data to your
users. This article gives you a launch point by exploring what GIS data
is, how to collect it, and how to manage it. The first step in developing
a GIS business system is to collect the geographical data, a process
interchangeably called geomapping or geocoding. Both terms refer to
the process of retrieving the real-world position of the objects or
places you want to map. This process is simple for single-pointed
objects, either static or moving, such as a building, a car, an antenna --
objects you would show as a point on a map. But the process becomes more
difficult when you want to map lines and areas. Fortunately, the
technologies involved are basically the same; first you learn how to
work with points, and then you extend the process to work with lines
(pairs of points) and then areas (sequences of lines)... An example
Google Earth XML structure is written in an XML language called Keyhole
Markup Language (KML). The most important portion of the code is the
'Point' element, which defines a point using the 'coordinates' node;
the 'coordinates' node takes three comma-separated values that specify
longitude, latitude, and altitude... Getting started with GID
applications is quite simple: you collect points via GPS or existing
maps, and render them using a mapping application. You don't need
expensive hardware, and you can write simple software without too much
work. With a little effort, you can write exciting business applications
that feature 2D maps or 3D earth-rendering systems. More Information
IBM Offers 'SOA Healthcheck' Workshops
IBM's global services organization is adding "health check" services to
its repertoire of technical services for SOA deployments, looking to
assist users dealing with issues resulting from poor planning or
partnerships with inexperienced or so-called proprietary IT vendors.
The company also is offering its "identity-aware ESB," which is an
enterprise service bus that combines existing IBM products to provide
identity management capabilities. Health-check services and software
will be offered in two workshops to be held at customer sites, featuring
specialized diagnostics and triage capabilities to help identify
potentially unhealthy areas and recommend cures for problem areas. The
applications and services workshop is intended to provide assurance
that an SOA can expand beyond pilot projects. Factors such as application
reuse and service use will be assessed, as will identification of rogue
services as part of a governance policy. Security also will be checked
for service controls and identity management. The infrastructure workshop
features an assessment of infrastructure supporting applications and
services layers in an SOA. Elements examined include infrastructure
flexibility, the ability to adapt to spikes in demand, and verifying
SOA configurations for connectivity. A service management review ensures
that services are being monitored. IBM's identity-aware ESB combines
WebSphere ESB products with Tivoli security and identity management
software to help ensure that access to information, services, and
applications is protected. Auditing of identity and access activity is
enabled.
its repertoire of technical services for SOA deployments, looking to
assist users dealing with issues resulting from poor planning or
partnerships with inexperienced or so-called proprietary IT vendors.
The company also is offering its "identity-aware ESB," which is an
enterprise service bus that combines existing IBM products to provide
identity management capabilities. Health-check services and software
will be offered in two workshops to be held at customer sites, featuring
specialized diagnostics and triage capabilities to help identify
potentially unhealthy areas and recommend cures for problem areas. The
applications and services workshop is intended to provide assurance
that an SOA can expand beyond pilot projects. Factors such as application
reuse and service use will be assessed, as will identification of rogue
services as part of a governance policy. Security also will be checked
for service controls and identity management. The infrastructure workshop
features an assessment of infrastructure supporting applications and
services layers in an SOA. Elements examined include infrastructure
flexibility, the ability to adapt to spikes in demand, and verifying
SOA configurations for connectivity. A service management review ensures
that services are being monitored. IBM's identity-aware ESB combines
WebSphere ESB products with Tivoli security and identity management
software to help ensure that access to information, services, and
applications is protected. Auditing of identity and access activity is
enabled.
OASIS Issues Call for Participation: Service Data Objects (SDO) TC
OASIS announced the formation of a new Service Data Objects (SDO)
Technical Committee. The purpose of this TC is to evolve and standardize
the specifications defining the Service Data Objects architecture and
API. Service Data Objects (SDO) is a data programming architecture and
an API whose main purpose is to simplify data programming. The key
concepts, structures and behaviours of SDO will be defined by the SDO
for Java specification from the JCP and the same SDO functionality
defined by the Java specification available from C++. As far as possible,
the SDO behaviour should behave consistently across the languages while
also fitting naturally into each language's native programming
environment. The first phase of work will be for SDO use with the C++
programming language. In particular, this TC shall maintain functional
equivalence with the SDO for Java V2.1.1 Specification, under the
stewardship of the Java Community Process (JCP). This TC will continue
development of the "SDO for C++ V2.1" specification and aim to establish
it as an OASIS Standard. In a second phase, the TC will evolve the SDO
specifications (for both Java and C++) to a Version 3.0 level of
functionality. Further programming languages may be selected from the
scoped list by the TC. The TC is encouraged to consider an effective
manner of evolving SDO functionality, keeping the multiple language
specifications current and in alignment. Service Data Objects (SDO)
Version 3.0 is intended to build upon the SDO Version 2.1.1 architecture
and APIs by providing additional functionality to further simplify data
programming so that developers can focus on business logic rather than
the underlying technologies. Subject to the agreement of the Member
Section Steering Committee, the new TC will affiliate with the Open
CSA Member Section as it commences work.
Technical Committee. The purpose of this TC is to evolve and standardize
the specifications defining the Service Data Objects architecture and
API. Service Data Objects (SDO) is a data programming architecture and
an API whose main purpose is to simplify data programming. The key
concepts, structures and behaviours of SDO will be defined by the SDO
for Java specification from the JCP and the same SDO functionality
defined by the Java specification available from C++. As far as possible,
the SDO behaviour should behave consistently across the languages while
also fitting naturally into each language's native programming
environment. The first phase of work will be for SDO use with the C++
programming language. In particular, this TC shall maintain functional
equivalence with the SDO for Java V2.1.1 Specification, under the
stewardship of the Java Community Process (JCP). This TC will continue
development of the "SDO for C++ V2.1" specification and aim to establish
it as an OASIS Standard. In a second phase, the TC will evolve the SDO
specifications (for both Java and C++) to a Version 3.0 level of
functionality. Further programming languages may be selected from the
scoped list by the TC. The TC is encouraged to consider an effective
manner of evolving SDO functionality, keeping the multiple language
specifications current and in alignment. Service Data Objects (SDO)
Version 3.0 is intended to build upon the SDO Version 2.1.1 architecture
and APIs by providing additional functionality to further simplify data
programming so that developers can focus on business logic rather than
the underlying technologies. Subject to the agreement of the Member
Section Steering Committee, the new TC will affiliate with the Open
CSA Member Section as it commences work.
Microsoft Joins the Open Geospatial Consortium (OGC)
In a move that is bound to have lasting repercussions for geospatial
application developers, Microsoft has formally joined the Open
Geospatial Consortium (OGC), a nonprofit standards organization. The
move underlines Microsoft's commitment to make its geospatial
applications -- including Microsoft Virtual Earth and SQL Server
2008 -- conform to open standards, which will make it easier for
third-party developers to integrate their own applications more
effectively. According to Ed Katibah, Microsoft's spatial program
manager for SQL Server, SQL Server 2008, which introduces spatial data
types and methods, was designed to conform to OGC standards. The new
version of the database, which is expected to be released in the second
quarter of 2008, will undergo testing in the next few weeks to ensure
its conformity. OGC Chairman and Chief Executive Officer David Schell
said that Microsoft's decision to join OGC represents a major change
in the industry. In its early years, OGC was supported primarily by
developers of geospatial tools for vertical markets, such as ESRI and
Autodesk. The recent addition of Google and now Microsoft represents
a sea change, according to Schell. Schell expects Microsoft's
participation to serve as a stabilizing force. As developers build new
applications they can be assured that, by following OGC standards,
their efforts will not meet with immediate obsolescence as a result
of some major company introducing a new standard that suddenly changes
everything. Schell: "The center of gravity of the market is now shifting;
this really does indicate a significant maturation in the industry. It
indicates a very broad acceptance of geospatial information as part of
infrastructure development. And it also indicates that the dialogue
concerning the harmonization of spatial best practices has reached the
highest level." OGC is an international industry consortium of 346
companies, government agencies and universities participating in a
consensus process to develop publicly available interface specifications.
OpenGIS Specifications support interoperable solutions that "geo-enable"
the Web, wireless and location-based services, and mainstream IT.
application developers, Microsoft has formally joined the Open
Geospatial Consortium (OGC), a nonprofit standards organization. The
move underlines Microsoft's commitment to make its geospatial
applications -- including Microsoft Virtual Earth and SQL Server
2008 -- conform to open standards, which will make it easier for
third-party developers to integrate their own applications more
effectively. According to Ed Katibah, Microsoft's spatial program
manager for SQL Server, SQL Server 2008, which introduces spatial data
types and methods, was designed to conform to OGC standards. The new
version of the database, which is expected to be released in the second
quarter of 2008, will undergo testing in the next few weeks to ensure
its conformity. OGC Chairman and Chief Executive Officer David Schell
said that Microsoft's decision to join OGC represents a major change
in the industry. In its early years, OGC was supported primarily by
developers of geospatial tools for vertical markets, such as ESRI and
Autodesk. The recent addition of Google and now Microsoft represents
a sea change, according to Schell. Schell expects Microsoft's
participation to serve as a stabilizing force. As developers build new
applications they can be assured that, by following OGC standards,
their efforts will not meet with immediate obsolescence as a result
of some major company introducing a new standard that suddenly changes
everything. Schell: "The center of gravity of the market is now shifting;
this really does indicate a significant maturation in the industry. It
indicates a very broad acceptance of geospatial information as part of
infrastructure development. And it also indicates that the dialogue
concerning the harmonization of spatial best practices has reached the
highest level." OGC is an international industry consortium of 346
companies, government agencies and universities participating in a
consensus process to develop publicly available interface specifications.
OpenGIS Specifications support interoperable solutions that "geo-enable"
the Web, wireless and location-based services, and mainstream IT.
The Hypertext Transfer Protocol (HTTP) Entity Tag ("ETag") Response
A revised version of the IETF specification "The Hypertext Transfer
Protocol (HTTP) Entity Tag ('ETag') Response Header in Write Operations"
has been released in connection with the formation of a new HTTPbis
Working Group activity. The Hypertext Transfer Protocol (HTTP)
specifies a state identifier, called "Entity Tag", to be returned in
the "ETag" response header. However, the description of this header
for write operations such as PUT is incomplete, and has caused confusion
among developers and protocol designers, and potentially interoperability
problems. This document explains the problem in detail and suggests
both a clarification for a revision to the HTTP/1.1 specification
(RFC 2616) and a new header for use in responses, making HTTP entity
tags more useful for user agents that want to avoid round-trips to the
server after modifying a resource. The RFC 2616 specification is a bit
vague about what an ETag response header upon a write operation means,
but this problem is somewhat mitigated by the precise definition of a
response header. The proposal for enhancing RFC 2616 in this regard is
made in document Section 3. More Information See also the related issue 'Clarify "Requested Variant"': Click Here
Protocol (HTTP) Entity Tag ('ETag') Response Header in Write Operations"
has been released in connection with the formation of a new HTTPbis
Working Group activity. The Hypertext Transfer Protocol (HTTP)
specifies a state identifier, called "Entity Tag", to be returned in
the "ETag" response header. However, the description of this header
for write operations such as PUT is incomplete, and has caused confusion
among developers and protocol designers, and potentially interoperability
problems. This document explains the problem in detail and suggests
both a clarification for a revision to the HTTP/1.1 specification
(RFC 2616) and a new header for use in responses, making HTTP entity
tags more useful for user agents that want to avoid round-trips to the
server after modifying a resource. The RFC 2616 specification is a bit
vague about what an ETag response header upon a write operation means,
but this problem is somewhat mitigated by the precise definition of a
response header. The proposal for enhancing RFC 2616 in this regard is
made in document Section 3. More Information See also the related issue 'Clarify "Requested Variant"': Click Here
Updated W3C Working Draft: XMLHttpRequest Object for Ajax
Members of the W3C Web API Working Group have released an updated
Working Draft of "The XMLHttpRequest Object" specification, superseding
the document of 2007-06-18. The core component of Ajax, the
XMLHttpRequest object is an interface that allows scripts to perform
HTTP client functions, such as submitting form data or loading data
from a remote Web site. The name "XMLHttpRequest" is used for
compatibility with the Web, but may be misleading. First, the object
supports any text based format, including XML. Second, it can be used
to make requests over both HTTP and HTTPS (some implementations support
protocols in addition to HTTP and HTTPS, but that functionality is not
covered by this specification). Finally, it supports "requests" in a
broad sense of the term as it pertains to HTTP; namely all activity
involved with HTTP requests or responses for the defined HTTP methods.
The XMLHttpRequest object can be used by scripts to programmatically
connect to their originating server via HTTP. The document is being
produced as part of the Rich Web Clients Activity in the W3C Interaction
Domain. With the ubiquity of Web browsers and Web document formats
across a range of platforms and devices, many developers are using the
Web as an application environment. Examples of applications built on
rich Web clients include reservation systems, online shopping or
auction sites, games, multimedia applications, calendars, maps, chat
applications, weather displays, clocks, interactive design applications,
stock tickers, currency converters and data entry/display systems. Web
client applications typically have some form of programmatic control.
They may run within the browser or within another host application. A
Web client application is typically downloaded on demand each time it
is "executed," allowing a developer to update the application for all
users as needed. Such applications are usually smaller than regular
desktop applications in terms of code size and functionality, and may
have interactive rich graphical interfaces. More Information See also W3C Rich Web Clients: Click Here
Working Draft of "The XMLHttpRequest Object" specification, superseding
the document of 2007-06-18. The core component of Ajax, the
XMLHttpRequest object is an interface that allows scripts to perform
HTTP client functions, such as submitting form data or loading data
from a remote Web site. The name "XMLHttpRequest" is used for
compatibility with the Web, but may be misleading. First, the object
supports any text based format, including XML. Second, it can be used
to make requests over both HTTP and HTTPS (some implementations support
protocols in addition to HTTP and HTTPS, but that functionality is not
covered by this specification). Finally, it supports "requests" in a
broad sense of the term as it pertains to HTTP; namely all activity
involved with HTTP requests or responses for the defined HTTP methods.
The XMLHttpRequest object can be used by scripts to programmatically
connect to their originating server via HTTP. The document is being
produced as part of the Rich Web Clients Activity in the W3C Interaction
Domain. With the ubiquity of Web browsers and Web document formats
across a range of platforms and devices, many developers are using the
Web as an application environment. Examples of applications built on
rich Web clients include reservation systems, online shopping or
auction sites, games, multimedia applications, calendars, maps, chat
applications, weather displays, clocks, interactive design applications,
stock tickers, currency converters and data entry/display systems. Web
client applications typically have some form of programmatic control.
They may run within the browser or within another host application. A
Web client application is typically downloaded on demand each time it
is "executed," allowing a developer to update the application for all
users as needed. Such applications are usually smaller than regular
desktop applications in terms of code size and functionality, and may
have interactive rich graphical interfaces. More Information See also W3C Rich Web Clients: Click Here
Sieve Email Filtering: Representing Sieves and Display Directives in XML
This document describes a way to represent Sieve email filtering language
scripts in XML. Sieve ("Sieve: An Email Filtering Language") is a
language for filtering email messages at or around the time of final
delivery. It is designed to be implementable on either a mail client or
mail server. It is meant to be extensible, simple, and independent of
access protocol, mail architecture, and operating system and it is
intended to be manipulated by a variety of different user interfaces.
Some user interface environments have extensive existing facilities for
manipulating material represented in XML. While adding support for
alternate data syntaxes may be possible in most if not all of these
environments, it may not be particularly convenient to do so. The obvious
way to deal with this issue is to map sieves into XML, possibly on a
separate backend system, manipulate the XML, and convert it back to
normal Sieve format. Several Sieve extensions have already been specified
(RFC 3431, RFC 3598, RFC 3685, RFC 3934) and many more are planned. The
set of extensions available varies from one implementation to the next
and may even change as a result of configuration choices. It is therefore
essential that the XML representation of Sieve be able to accommodate
Sieve extensions without requiring schema changes. It is also desirable
that Sieve extensions not require changes to the code that converts to
and from the XML representation. This specification defines an XML
representation for sieve scripts and explains how the conversion process
to and from XML works. The XML representation is capable of accommodating
any future Sieve extension as long as the underlying Sieve grammar
remains unchanged. Furthermore, code that converts from XML to the
normal Sieve format requires no changes to accommodate extensions,
while code used to convert from normal Sieve format to XML only requires
changes when new control commands are added -- a rare event. An XML
Schema and sample code to convert to and from XML format are also
provided in the appendices. More Information
See also the IETF Sieve Mail Filtering Language (SIEVE) Working Group Charter: Click Here
scripts in XML. Sieve ("Sieve: An Email Filtering Language") is a
language for filtering email messages at or around the time of final
delivery. It is designed to be implementable on either a mail client or
mail server. It is meant to be extensible, simple, and independent of
access protocol, mail architecture, and operating system and it is
intended to be manipulated by a variety of different user interfaces.
Some user interface environments have extensive existing facilities for
manipulating material represented in XML. While adding support for
alternate data syntaxes may be possible in most if not all of these
environments, it may not be particularly convenient to do so. The obvious
way to deal with this issue is to map sieves into XML, possibly on a
separate backend system, manipulate the XML, and convert it back to
normal Sieve format. Several Sieve extensions have already been specified
(RFC 3431, RFC 3598, RFC 3685, RFC 3934) and many more are planned. The
set of extensions available varies from one implementation to the next
and may even change as a result of configuration choices. It is therefore
essential that the XML representation of Sieve be able to accommodate
Sieve extensions without requiring schema changes. It is also desirable
that Sieve extensions not require changes to the code that converts to
and from the XML representation. This specification defines an XML
representation for sieve scripts and explains how the conversion process
to and from XML works. The XML representation is capable of accommodating
any future Sieve extension as long as the underlying Sieve grammar
remains unchanged. Furthermore, code that converts from XML to the
normal Sieve format requires no changes to accommodate extensions,
while code used to convert from normal Sieve format to XML only requires
changes when new control commands are added -- a rare event. An XML
Schema and sample code to convert to and from XML format are also
provided in the appendices. More Information
See also the IETF Sieve Mail Filtering Language (SIEVE) Working Group Charter: Click Here
Monday, October 29, 2007
Mashups: The Evolution of the SOA
This article is first in a three-part series, providing a general
overview of the characteristics and technologies related to the term
Web 2.0 so that a platform can be laid for a detailed discussion about
how they relate to Service-Oriented Architecture (SOA) development.
The second part in the series examines the current state of IT and SOA
in the enterprise and discusses what situational applications and a
mashup ecosystem can offer. The third part describes the IBM Mashup
Starter Kit (IBMMSK) and how you can use it to develop situational
applications. Web 2.0 is best described as a core set of patterns that
are observable in applications that share the Web 2.0 label. These
patterns are services, simplicity, and community. This shift to a
service-based model has implications for how Web 2.0 applications are
now developed. The Web infrastructure is now seen as the bottom of the
application development stack.The prevalence of Web APIs lets you avoid
the work of creating certain features, thereby reducing your workload
so you can build applications faster. In addition, you can integrate
two or more of these Web APIs to create something new and unique, known
as a mashup. Web-based APIs can then be invoked using technologies,
such as Ajax, which provides a means for the browser client to
communicate with the server via JavaScript (both synchronously and
asynchronously). This means the application doesn't require the entire
page to be reloaded every time the client needs to communicate with
the server. You can use JavaScript Object Notation (JSON) to serialize
and deserialize objects so that they can be sent between the browser
client and the server via Ajax. It's now quite common to see existing
services provide SOAP, Ajax, and REST interfaces. RSS and Atom feeds
have now gone beyond being used only to subscribe to blogs and news
feeds, and are seen as potential approaches to simplify specific
content-centric application architectures. The Atom specification is
a more recent evolution of the ideas originally embodied by RSS and
provides useful features, such as the Atom Publishing Protocol (APP),
which lets you publish information to be added to a feed. If event-driven
architectures are now part of the SOA framework, then feeds can be
considered part of the service paradigm and should be leveraged as such. More Information
overview of the characteristics and technologies related to the term
Web 2.0 so that a platform can be laid for a detailed discussion about
how they relate to Service-Oriented Architecture (SOA) development.
The second part in the series examines the current state of IT and SOA
in the enterprise and discusses what situational applications and a
mashup ecosystem can offer. The third part describes the IBM Mashup
Starter Kit (IBMMSK) and how you can use it to develop situational
applications. Web 2.0 is best described as a core set of patterns that
are observable in applications that share the Web 2.0 label. These
patterns are services, simplicity, and community. This shift to a
service-based model has implications for how Web 2.0 applications are
now developed. The Web infrastructure is now seen as the bottom of the
application development stack.The prevalence of Web APIs lets you avoid
the work of creating certain features, thereby reducing your workload
so you can build applications faster. In addition, you can integrate
two or more of these Web APIs to create something new and unique, known
as a mashup. Web-based APIs can then be invoked using technologies,
such as Ajax, which provides a means for the browser client to
communicate with the server via JavaScript (both synchronously and
asynchronously). This means the application doesn't require the entire
page to be reloaded every time the client needs to communicate with
the server. You can use JavaScript Object Notation (JSON) to serialize
and deserialize objects so that they can be sent between the browser
client and the server via Ajax. It's now quite common to see existing
services provide SOAP, Ajax, and REST interfaces. RSS and Atom feeds
have now gone beyond being used only to subscribe to blogs and news
feeds, and are seen as potential approaches to simplify specific
content-centric application architectures. The Atom specification is
a more recent evolution of the ideas originally embodied by RSS and
provides useful features, such as the Atom Publishing Protocol (APP),
which lets you publish information to be added to a feed. If event-driven
architectures are now part of the SOA framework, then feeds can be
considered part of the service paradigm and should be leveraged as such. More Information
Data Sources as Web Services
WSO2 ('WS OH 2') is growing in popularity and the team continues to
produce quality products. The WSO2 (a.k.a. Web Services Oxygen Tank)
team that has pulled together a platform around Apache SOA projects,
producing an application server, ESB, Web 2.0 mashup engine, and more.
Most recently, they have released Version 2.1 of the Web Services
Application Server (WSAS). The release includes a lot of compelling
features, but this article focuses upon WSO2 Data Services -- a new
feature available in WSO2's WSAS 2.0 platform. The author introduces
Data Services, examining their architecture and utilization, and
exploring pros and cons of this convenient feature. Data services are
standard web services that have been configured within WSAS to map
to data source calls to one or more backend data sources. Configuration
is captured in XML and can either be performed by hand and uploaded as
a complete deployment module, or deployed via the web-based Data
Service configuration wizard. Once deployed, these services can either
be consumed by other WSAS services or be made available to external
clients. Data Services are essentially the SOA-equivalent of the Data
Access Object pattern. Granted, Data Services are at a much higher
level of abstraction, but they serve a similar role in a layered
architecture. They enable higher level services or even client
applications to access underlying datasets without regard for the
implementation details involved... The heart of any enterprise
application is data. Applications provide the ability to view, sort,
filter, edit, create, and delete data. In a SOA, access to data is
also paramount. Typically this involves wrapping an existing business
object (EJB or POJO) with a web service. Another option is to bypass
this additional layer and directly expose data capabilities via WSO2
Data Services. Data services are convenient, configurable, and great
for service oriented data for a demo or even as a part of a SOA. More Information
produce quality products. The WSO2 (a.k.a. Web Services Oxygen Tank)
team that has pulled together a platform around Apache SOA projects,
producing an application server, ESB, Web 2.0 mashup engine, and more.
Most recently, they have released Version 2.1 of the Web Services
Application Server (WSAS). The release includes a lot of compelling
features, but this article focuses upon WSO2 Data Services -- a new
feature available in WSO2's WSAS 2.0 platform. The author introduces
Data Services, examining their architecture and utilization, and
exploring pros and cons of this convenient feature. Data services are
standard web services that have been configured within WSAS to map
to data source calls to one or more backend data sources. Configuration
is captured in XML and can either be performed by hand and uploaded as
a complete deployment module, or deployed via the web-based Data
Service configuration wizard. Once deployed, these services can either
be consumed by other WSAS services or be made available to external
clients. Data Services are essentially the SOA-equivalent of the Data
Access Object pattern. Granted, Data Services are at a much higher
level of abstraction, but they serve a similar role in a layered
architecture. They enable higher level services or even client
applications to access underlying datasets without regard for the
implementation details involved... The heart of any enterprise
application is data. Applications provide the ability to view, sort,
filter, edit, create, and delete data. In a SOA, access to data is
also paramount. Typically this involves wrapping an existing business
object (EJB or POJO) with a web service. Another option is to bypass
this additional layer and directly expose data capabilities via WSO2
Data Services. Data services are convenient, configurable, and great
for service oriented data for a demo or even as a part of a SOA. More Information
RDFa Primer: Embedding Structured Data in Web Pages
The updated version of "RDFa Primer" provides an introduction to RDFa,
a method for structuring data by embedding in XHTML. This version of
the RDFa Primer is a substantial update to the previous version,
representing several design changes since the previous version was
published. Current Web pages, written in XHTML, contain inherent
structured data: calendar events, contact information, photo captions,
song titles, copyright licensing information, etc. When authors and
publishers can express this data precisely, and when tools can read
it robustly, a new world of user functionality becomes available,
letting users transfer structured data between applications and Web
sites. An event on a Web page can be directly imported into a desktop
calendar. A license on a document can be detected to inform the user
of his rights automatically. A photo's creator, camera setting
information, resolution, and topic can be published as easily as the
original photo itself. RDFa lets XHTML authors express this structured
data using existing XHTML attributes and a handful of new ones. Where
data, such as a photo caption, is already present on the page for
human readers, the author need not repeat it for automated processes
to access it. A Web publisher can easily reuse data fields, e.g. an
event's date, defined by other publishers, or create new ones
altogether. RDFa gets its expressive power from RDF, though the reader
need not understand RDF before reading this document. RDFa uses Compact
URIs, which express a URI using a prefix. More Information
a method for structuring data by embedding in XHTML. This version of
the RDFa Primer is a substantial update to the previous version,
representing several design changes since the previous version was
published. Current Web pages, written in XHTML, contain inherent
structured data: calendar events, contact information, photo captions,
song titles, copyright licensing information, etc. When authors and
publishers can express this data precisely, and when tools can read
it robustly, a new world of user functionality becomes available,
letting users transfer structured data between applications and Web
sites. An event on a Web page can be directly imported into a desktop
calendar. A license on a document can be detected to inform the user
of his rights automatically. A photo's creator, camera setting
information, resolution, and topic can be published as easily as the
original photo itself. RDFa lets XHTML authors express this structured
data using existing XHTML attributes and a handful of new ones. Where
data, such as a photo caption, is already present on the page for
human readers, the author need not repeat it for automated processes
to access it. A Web publisher can easily reuse data fields, e.g. an
event's date, defined by other publishers, or create new ones
altogether. RDFa gets its expressive power from RDF, though the reader
need not understand RDF before reading this document. RDFa uses Compact
URIs, which express a URI using a prefix. More Information
DocBook V5.0: The Transition Guide
Jirka Kosek announced the availability of an updated "howto" DocBook
Version 5.0 Transition Guide. The document is targeted at DocBook users
who are considering switching from DocBook V4.x to DocBook V5.0. It
describes differences between DocBook V4.x and V5.0 and provides some
suggestions about how to edit and process DocBook V5.0 documents. There
is also a section devoted to conversion of legacy documents from DocBook
4.x to DocBook V5.0. The differences between DocBook V4.x and V5.0 are
quite radical in some aspects, but the basic idea behind DocBook is
still the same and almost all element names are unchanged. Because of
this it is very easy to become familiar with DocBook V5.0 if you know
any previous version of DocBook. For more than a decade, the DocBook
schema was defined using a DTD. However DTDs have serious limitations
and DocBook V5.0 is thus defined using a very powerful schema language
called RELAX NG. Thanks to RELAX NG, it is now much easier to create
customized versions of DocBook, and some content models are now cleaner
and more precise. The Technical Committee provides the DocBook 5.0
schema in other schema languages, including W3C XML Schema and an XML
DTD, but the RELAX NG Schema is the normative schema. All DocBook V5.0
elements are in the namespace Link XML
namespaces are used to distinguish between different element sets. In
the last few years, almost all new XML grammars have used their own
namespace. It is easy to create compound documents that contain elements
from different XML vocabularies. The namespace name serves only as an identifier. This
resource is not fetched during processing of DocBook documents and
you are not required to have an Internet connection during processing.
If you access the namespace URI with a browser, you will find a short
explanatory document about the namespace. In the future this document
will probably conform to (some version of) RDDL and provide pointers
to related resources. More Information See also DocBook V5.x: Click Here
Version 5.0 Transition Guide. The document is targeted at DocBook users
who are considering switching from DocBook V4.x to DocBook V5.0. It
describes differences between DocBook V4.x and V5.0 and provides some
suggestions about how to edit and process DocBook V5.0 documents. There
is also a section devoted to conversion of legacy documents from DocBook
4.x to DocBook V5.0. The differences between DocBook V4.x and V5.0 are
quite radical in some aspects, but the basic idea behind DocBook is
still the same and almost all element names are unchanged. Because of
this it is very easy to become familiar with DocBook V5.0 if you know
any previous version of DocBook. For more than a decade, the DocBook
schema was defined using a DTD. However DTDs have serious limitations
and DocBook V5.0 is thus defined using a very powerful schema language
called RELAX NG. Thanks to RELAX NG, it is now much easier to create
customized versions of DocBook, and some content models are now cleaner
and more precise. The Technical Committee provides the DocBook 5.0
schema in other schema languages, including W3C XML Schema and an XML
DTD, but the RELAX NG Schema is the normative schema. All DocBook V5.0
elements are in the namespace Link XML
namespaces are used to distinguish between different element sets. In
the last few years, almost all new XML grammars have used their own
namespace. It is easy to create compound documents that contain elements
from different XML vocabularies. The namespace name serves only as an identifier. This
resource is not fetched during processing of DocBook documents and
you are not required to have an Internet connection during processing.
If you access the namespace URI with a browser, you will find a short
explanatory document about the namespace. In the future this document
will probably conform to (some version of) RDDL and provide pointers
to related resources. More Information See also DocBook V5.x: Click Here
Friday, October 26, 2007
The Trouble With XML Schema Imports and Includes
Those who have written W3C XML Schemas will know that there are two
mechanisms for sharing Schema definitions across files. "xs:include"
is used like traditional programming language 'include' statements,
so that you can split a single large file up into separate, modular
pieces. "xs:import" is used when you need to use Schema definitions
from a different XML namespace, as W3C XML Schema doesn't allow a
single Schema file to contain definitions for more than a single
namespace... I have been involved with a number of standards groups,
and I know that the what comes out of a standards effort depends on
what requirements and scope have been given to the group. So while
I wish that the W3C's XML Schema Working Group had been able to give
us something better for Schema definition sharing than just
import/include statements, I don't think the working group ever had
a scope that would have allowed them, for example, to define a
standard for repositories of Schema definitions, and for how to
compose and generate Schemas flexibly from the definitions in one or
more repositories. Instead, we have import and include, which are
about the best you can do when your scope only allows you to deal with
schemas, and not with higher-level concepts like repositories. As a
general rule, almost any solution will work if the problem is simple
enough and straightforward enough and isn't particularly demanding in
any way. Many uses of import/include statements are simple enough that
these built-in mechanisms do what is needed. However, there are
other situations where import/include don't work as you would hope,
and I thought I would mention a couple that I have run into in practice... More Information
mechanisms for sharing Schema definitions across files. "xs:include"
is used like traditional programming language 'include' statements,
so that you can split a single large file up into separate, modular
pieces. "xs:import" is used when you need to use Schema definitions
from a different XML namespace, as W3C XML Schema doesn't allow a
single Schema file to contain definitions for more than a single
namespace... I have been involved with a number of standards groups,
and I know that the what comes out of a standards effort depends on
what requirements and scope have been given to the group. So while
I wish that the W3C's XML Schema Working Group had been able to give
us something better for Schema definition sharing than just
import/include statements, I don't think the working group ever had
a scope that would have allowed them, for example, to define a
standard for repositories of Schema definitions, and for how to
compose and generate Schemas flexibly from the definitions in one or
more repositories. Instead, we have import and include, which are
about the best you can do when your scope only allows you to deal with
schemas, and not with higher-level concepts like repositories. As a
general rule, almost any solution will work if the problem is simple
enough and straightforward enough and isn't particularly demanding in
any way. Many uses of import/include statements are simple enough that
these built-in mechanisms do what is needed. However, there are
other situations where import/include don't work as you would hope,
and I thought I would mention a couple that I have run into in practice... More Information
Google Search Appliance Version 5.0 Features SAML-Based Security
Google Enterprise Labs announced the release of the Google Search
Appliance Version 5.0, featuring enhanced security for enterprise
applications. The Google Search Appliance provides document and
user-level access control across all web-enabled enterprise content
to ensure that users only see search results for documents they're
permitted to access. With version 5.0, the designers made significant
performance improvement to the SAML SPI framework; as a result the
customers who leverage SAML SPI will be improved performance on their
secured search queries. If the search appliance is configured to use
the SAML Authentication and Authorization SPI, the search appliance
sends a SAML authorization request to the Policy Decision Point, using
the identity obtained for the user during serve authentication. The
SPI enables a Google Search Appliance to communicate with an existing
access control infrastructure via standard SAML messages. The
Authorization SPI is also required in order to support X.509
certificate authentication during serve. When the user's identity
has been authenticated, the Authorization SPI checks to see whether
the user is authorized to view each of the secure documents that match
their search. Using the authenticated cookie set during Authentication,
the search appliance passes the user's session cookie to the Policy
Decision Point's Authorization Service URL inside a SAML Authorization
request. If the response from the Policy Decision Point is inconclusive,
the search appliance will also attempt to verify authorization with a
HEAD request (for content crawled via HTTP Basic or NTLM HTTP) or GET
request (for content crawled via Forms Authentication) before removing
the content from the search results list. The "Windows Authentication
via Google SAML Bridge for Windows" is a special case of the
Authentication and Authorization SPI. The search appliance sends SPI
messages to the Google SAML Bridge for Windows to verify the user's
credentials and authorization to view secure content. This method
requires you to set up the Google SAML Bridge for Windows to handle
the SAML messages from the search appliance's Authorization and
Authentication SPI. The Google SAML Bridge for Windows acts as an
Identity Provider and Policy Decision Point. More Information
Appliance Version 5.0, featuring enhanced security for enterprise
applications. The Google Search Appliance provides document and
user-level access control across all web-enabled enterprise content
to ensure that users only see search results for documents they're
permitted to access. With version 5.0, the designers made significant
performance improvement to the SAML SPI framework; as a result the
customers who leverage SAML SPI will be improved performance on their
secured search queries. If the search appliance is configured to use
the SAML Authentication and Authorization SPI, the search appliance
sends a SAML authorization request to the Policy Decision Point, using
the identity obtained for the user during serve authentication. The
SPI enables a Google Search Appliance to communicate with an existing
access control infrastructure via standard SAML messages. The
Authorization SPI is also required in order to support X.509
certificate authentication during serve. When the user's identity
has been authenticated, the Authorization SPI checks to see whether
the user is authorized to view each of the secure documents that match
their search. Using the authenticated cookie set during Authentication,
the search appliance passes the user's session cookie to the Policy
Decision Point's Authorization Service URL inside a SAML Authorization
request. If the response from the Policy Decision Point is inconclusive,
the search appliance will also attempt to verify authorization with a
HEAD request (for content crawled via HTTP Basic or NTLM HTTP) or GET
request (for content crawled via Forms Authentication) before removing
the content from the search results list. The "Windows Authentication
via Google SAML Bridge for Windows" is a special case of the
Authentication and Authorization SPI. The search appliance sends SPI
messages to the Google SAML Bridge for Windows to verify the user's
credentials and authorization to view secure content. This method
requires you to set up the Google SAML Bridge for Windows to handle
the SAML messages from the search appliance's Authorization and
Authentication SPI. The Google SAML Bridge for Windows acts as an
Identity Provider and Policy Decision Point. More Information
CSS Snapshot 2007: W3C Working Draft
W3C's CSS Working Group recently published the First Public Working
Draft for "Cascading Style Sheets (CSS) Snapshot 2007." The document
collects together into one definition all the specs that together
form the current state of Cascading Style Sheets (CSS). All stable
specifications that have been implemented for the Cascading Style
Sheets (CSS) language at all Levels are given in this single document
as a guide for authors. The snapshot is not a guide to what features
are implemented. The group expects it to be a future Working Group Note.
When the first CSS specification was published, all of CSS was contained
in one document that defined CSS Level 1. CSS Level 2 was defined also
by a single, multi-chapter document. However for CSS beyond Level 2,
the CSS Working Group chose to adopt a modular approach, where each
module defines a part of CSS, rather than to define a single monolithic
specifcation. This breaks the specification into more manageable chunks
and allows more immediate, incremental improvement to CSS. Since different
CSS modules are at different levels of stability, the CSS Working Group
has chosen to publish this profile to define the current scope and
state of Cascading Style Sheets as of late 2007. The profile includes
only specifications that we consider consider stable and for which we
have enough implementation experience that we are sure of that stability.
The CSS Working Group considers the CSS1 specification to be obsolete.
CSS 2.1 is now a Candidate Recommendation -- effectively though not
officially the same level of stability as CSS2 -- and should be
considered to obsolete the CSS2 Recommendation. In case of any conflict
between the two specs CSS 2.1 contains the definitive definition. Features
in CSS2 that were dropped from CSS 2.1 should be considered to be at the
Candidate Recommendation stage, but note that many of these have been
or will be pulled into a CSS Level 3 working draft, in which case that
specification will, once it reaches CR, obsolete the definitions in CSS2.
CSS Level 3 builds on CSS Level 2 module by module, using the CSS 2.1
specification as its core. Each module adds functionality and/or replaces
part of the CSS 2.1 specification. The CSS Working Group intends that
the new CSS modules will not contradict the CSS 2.1 specification: only
that they will add functionality and refine definitions. As each module
is completed, it will be plugged in to the existing system of CSS 2.1
plus previously-completed modules. More Information See also the CSS Working Group: Click Here
Draft for "Cascading Style Sheets (CSS) Snapshot 2007." The document
collects together into one definition all the specs that together
form the current state of Cascading Style Sheets (CSS). All stable
specifications that have been implemented for the Cascading Style
Sheets (CSS) language at all Levels are given in this single document
as a guide for authors. The snapshot is not a guide to what features
are implemented. The group expects it to be a future Working Group Note.
When the first CSS specification was published, all of CSS was contained
in one document that defined CSS Level 1. CSS Level 2 was defined also
by a single, multi-chapter document. However for CSS beyond Level 2,
the CSS Working Group chose to adopt a modular approach, where each
module defines a part of CSS, rather than to define a single monolithic
specifcation. This breaks the specification into more manageable chunks
and allows more immediate, incremental improvement to CSS. Since different
CSS modules are at different levels of stability, the CSS Working Group
has chosen to publish this profile to define the current scope and
state of Cascading Style Sheets as of late 2007. The profile includes
only specifications that we consider consider stable and for which we
have enough implementation experience that we are sure of that stability.
The CSS Working Group considers the CSS1 specification to be obsolete.
CSS 2.1 is now a Candidate Recommendation -- effectively though not
officially the same level of stability as CSS2 -- and should be
considered to obsolete the CSS2 Recommendation. In case of any conflict
between the two specs CSS 2.1 contains the definitive definition. Features
in CSS2 that were dropped from CSS 2.1 should be considered to be at the
Candidate Recommendation stage, but note that many of these have been
or will be pulled into a CSS Level 3 working draft, in which case that
specification will, once it reaches CR, obsolete the definitions in CSS2.
CSS Level 3 builds on CSS Level 2 module by module, using the CSS 2.1
specification as its core. Each module adds functionality and/or replaces
part of the CSS 2.1 specification. The CSS Working Group intends that
the new CSS modules will not contradict the CSS 2.1 specification: only
that they will add functionality and refine definitions. As each module
is completed, it will be plugged in to the existing system of CSS 2.1
plus previously-completed modules. More Information See also the CSS Working Group: Click Here
Behavioral Extensions to CSS
W3C announced the release of an updated version of the "Behavioral
Extensions to CSS" Working Draft. The document was produced by members
of the W3C CSS (Cascading Style Sheets) Working Group as part of the
Style Activity. In 1999, the CSS working group worked on a "Behavioral
Extensions to CSS" specification that proposed syntax for actual
binding definitions. Since then, separate languages have been developed
for this purpose (e.g. XBL), and the CSS-specific way of defining
bindings has been dropped. CSS is still useful for connecting these
binding languages to actual elements, however. This specification
defines two features of CSS that can be used with any such binding
language. Behavioral Extensions provide a way to link to binding
technologies, such as XBL, from CSS style sheets. This allows bindings
to be selected using the CSS cascade, and thus enables bindings to
transparently benefit from the user style sheet mechanism, media
selection, and alternate style sheets. A "binding" is a definition of
presentation or behavior that can be attached to an element, and
bindings can be attached to elements through CSS using the 'binding'
property. Bindings attached through CSS must only remain on the bound
element as long as the element continues to match the style rule. If
at any time a resolution of style on the element determines that a
different binding should be attached, the old binding must be detached.
Whenever an element is removed from a document, any bindings attached
to that element via CSS must be detached. The ":bound-element"
pseudo-class, when used from a binding, must match the bound element
of that binding. If the selector is used in a context that is not
specific to a binding, then it must match any bound element. One
example shows an XBL binding that uses this pseudo-class to to draw
a border around each of the children of the bound element, but no
other elements. More Information
Extensions to CSS" Working Draft. The document was produced by members
of the W3C CSS (Cascading Style Sheets) Working Group as part of the
Style Activity. In 1999, the CSS working group worked on a "Behavioral
Extensions to CSS" specification that proposed syntax for actual
binding definitions. Since then, separate languages have been developed
for this purpose (e.g. XBL), and the CSS-specific way of defining
bindings has been dropped. CSS is still useful for connecting these
binding languages to actual elements, however. This specification
defines two features of CSS that can be used with any such binding
language. Behavioral Extensions provide a way to link to binding
technologies, such as XBL, from CSS style sheets. This allows bindings
to be selected using the CSS cascade, and thus enables bindings to
transparently benefit from the user style sheet mechanism, media
selection, and alternate style sheets. A "binding" is a definition of
presentation or behavior that can be attached to an element, and
bindings can be attached to elements through CSS using the 'binding'
property. Bindings attached through CSS must only remain on the bound
element as long as the element continues to match the style rule. If
at any time a resolution of style on the element determines that a
different binding should be attached, the old binding must be detached.
Whenever an element is removed from a document, any bindings attached
to that element via CSS must be detached. The ":bound-element"
pseudo-class, when used from a binding, must match the bound element
of that binding. If the selector is used in a context that is not
specific to a binding, then it must match any bound element. One
example shows an XBL binding that uses this pseudo-class to to draw
a border around each of the children of the bound element, but no
other elements. More Information
Setting Out for Service Component Architecture
Quite a number of bloggers have been wondering about the Service
Component Architecture (SCA) standardization effort. SCA's pick-and-chose
specification style makes it is easy to get lost in the SCA universe.
Because there is little experience with using SCA in the community,
many areas that deserve detailed specification are still under
investigation or have not even been touched yet. At first, readers
might easily be misled into believing that SCA is (yet another)
revolution in Java land. This is wrong on two counts. Firstly, although
Java oriented work attract most of the attention, SCA is not only about
Java land: there are specifications for C++, COBOL, PHP, and BPEL. What
we want to focus on though is that SCA is not primarily about replacing
existing environments (such as Java EE and OSGI) but about creating an
infrastructure in which applications can cross the boundaries between
different programming model in these environments. The details of how
SCA will integrate with existing technologies are the missing pieces
in the catalogue of published SCA specifications. There is simply still
a lot of work ahead to figure out the tedious details of integration at
all layers with these environments. Technology integration is hard. No
single interesting technology should be limited in its use. And yet,
SCA is all about cross-technology integration... SCA defines an assembly
language that may be integrated into such frameworks in order to realize
a number of benefits. We will discuss various benefits in detail. Here
are the claims we will make: (1) SCA can be supported in conjunction
with existing technologies. That will likely be its primary use-case.
(2) SCA's fundamental value lies in providing the foundation to
cross-technology programming model integration, distributed deployments
and assembly. (3) SCA will allow implementers to provide proprietary
technologies in a consistent and recognizable way -- which is good for
both developers and vendors.
Component Architecture (SCA) standardization effort. SCA's pick-and-chose
specification style makes it is easy to get lost in the SCA universe.
Because there is little experience with using SCA in the community,
many areas that deserve detailed specification are still under
investigation or have not even been touched yet. At first, readers
might easily be misled into believing that SCA is (yet another)
revolution in Java land. This is wrong on two counts. Firstly, although
Java oriented work attract most of the attention, SCA is not only about
Java land: there are specifications for C++, COBOL, PHP, and BPEL. What
we want to focus on though is that SCA is not primarily about replacing
existing environments (such as Java EE and OSGI) but about creating an
infrastructure in which applications can cross the boundaries between
different programming model in these environments. The details of how
SCA will integrate with existing technologies are the missing pieces
in the catalogue of published SCA specifications. There is simply still
a lot of work ahead to figure out the tedious details of integration at
all layers with these environments. Technology integration is hard. No
single interesting technology should be limited in its use. And yet,
SCA is all about cross-technology integration... SCA defines an assembly
language that may be integrated into such frameworks in order to realize
a number of benefits. We will discuss various benefits in detail. Here
are the claims we will make: (1) SCA can be supported in conjunction
with existing technologies. That will likely be its primary use-case.
(2) SCA's fundamental value lies in providing the foundation to
cross-technology programming model integration, distributed deployments
and assembly. (3) SCA will allow implementers to provide proprietary
technologies in a consistent and recognizable way -- which is good for
both developers and vendors.
Wednesday, October 24, 2007
W3C First Public Working Draft: RDFa in XHTML: Syntax and Processing
W3C announced that the Semantic Web Deployment Working Group and the
XHTML2 Working Group jointly have published the First Public Working
Draft for "RDFa in XHTML: Syntax and Processing." RDFa attributes can
be used with languages such as HTML and XHTML to express structured data.
RDFa allows terms from multiple independently-developed vocabularies to
be freely intermixed. This document has parsing rules for those creating
an RDFa parser as well as guidelines for users in organizations who wish
to use RDFa. For those who would like start using RDFa, the RDFa Primer
is an introduction to its use and shows real-world examples. RDFa
alleviates the pressure on XML format authors to anticipate all the
structural requirements users of their format might have, by outlining
a new syntax for RDF that relies only on XML attributes. This
specification deals specifically with the use of RDFa in XHTML, and
defines an RDF mapping for a number of XHTML attributes, but RDFa can
be easily imported into other XML-based markup languages. RDFa shares
some use cases with microformats. Whereas microformats specify both a
syntax for embedding structured data into HTML documents and a vocabulary
of specific terms for each microformat, RDFa specifies only a syntax
and relies on independent specification of terms (RDF Classes and
Properties) by others. RDFa allows terms from multiple
independently-developed vocabularies to be freely intermixed and is
designed such that the language can be parsed without knowledge of
the specific term vocabulary being used. More Information See also the RDFa Primer 1.0: Click Here
XHTML2 Working Group jointly have published the First Public Working
Draft for "RDFa in XHTML: Syntax and Processing." RDFa attributes can
be used with languages such as HTML and XHTML to express structured data.
RDFa allows terms from multiple independently-developed vocabularies to
be freely intermixed. This document has parsing rules for those creating
an RDFa parser as well as guidelines for users in organizations who wish
to use RDFa. For those who would like start using RDFa, the RDFa Primer
is an introduction to its use and shows real-world examples. RDFa
alleviates the pressure on XML format authors to anticipate all the
structural requirements users of their format might have, by outlining
a new syntax for RDF that relies only on XML attributes. This
specification deals specifically with the use of RDFa in XHTML, and
defines an RDF mapping for a number of XHTML attributes, but RDFa can
be easily imported into other XML-based markup languages. RDFa shares
some use cases with microformats. Whereas microformats specify both a
syntax for embedding structured data into HTML documents and a vocabulary
of specific terms for each microformat, RDFa specifies only a syntax
and relies on independent specification of terms (RDF Classes and
Properties) by others. RDFa allows terms from multiple
independently-developed vocabularies to be freely intermixed and is
designed such that the language can be parsed without knowledge of
the specific term vocabulary being used. More Information See also the RDFa Primer 1.0: Click Here
Burton Cautiously Optimistic about SCA for SOA
The analysts who cover service-oriented architecture (SOA) for Burton
Group Inc. have some reservations about the Service Component
Architecture (SCA) specification, but have concluded the vendor backing
is so strong "adoption may be inevitable." Touted as "a new programming
model for SOA" by its vendor sponsors led by IBM and now making its
way through the OASIS standards process, SCA is not yet baked into many
products beyond IBM's WebSphere, but Burton analysts expect adoption
to pick up in 2008. Given its apparent inevitability as a vendor
supported standard, Anne Thomas Manes, vice president and research
director at Burton, spent more than an hour Tuesday in a Web seminar
explaining SCA's potential promise and problems to clients. She said
the concerns about SCA at Burton Group include the fact that SCA is
made up of more than 14 specifications. Analysts are skeptical that
the various technical committees working on those specifications can
reach the goal of creating an overall standard to "simplify" service
creation and composition. This leads to concern that SCA could suffer
the same fate as Common Object Request Broker Architecture (CORBA),
which failed to achieve its promise in the 1990s because, as one analyst
put it, "too many cooks spoiled the broth." "There is some concern that
SCA can hide all the complexities," she said. The good news is that SCA
has potential, yet unproven, to be a language-and protocol-independent
programming model for SOA. Languages that will be supported in SCA cover
most of those a non-Microsoft coder would be working on today, ranging
from COBOL to Ruby. Support is planned for Java, including Plan Old Java
Objects (POJO), Spring, Enterprise Java Beans, C, C++, BPEL and PHP. More Information See also OASIS SCA-TCs: Click Here
Group Inc. have some reservations about the Service Component
Architecture (SCA) specification, but have concluded the vendor backing
is so strong "adoption may be inevitable." Touted as "a new programming
model for SOA" by its vendor sponsors led by IBM and now making its
way through the OASIS standards process, SCA is not yet baked into many
products beyond IBM's WebSphere, but Burton analysts expect adoption
to pick up in 2008. Given its apparent inevitability as a vendor
supported standard, Anne Thomas Manes, vice president and research
director at Burton, spent more than an hour Tuesday in a Web seminar
explaining SCA's potential promise and problems to clients. She said
the concerns about SCA at Burton Group include the fact that SCA is
made up of more than 14 specifications. Analysts are skeptical that
the various technical committees working on those specifications can
reach the goal of creating an overall standard to "simplify" service
creation and composition. This leads to concern that SCA could suffer
the same fate as Common Object Request Broker Architecture (CORBA),
which failed to achieve its promise in the 1990s because, as one analyst
put it, "too many cooks spoiled the broth." "There is some concern that
SCA can hide all the complexities," she said. The good news is that SCA
has potential, yet unproven, to be a language-and protocol-independent
programming model for SOA. Languages that will be supported in SCA cover
most of those a non-Microsoft coder would be working on today, ranging
from COBOL to Ruby. Support is planned for Java, including Plan Old Java
Objects (POJO), Spring, Enterprise Java Beans, C, C++, BPEL and PHP. More Information See also OASIS SCA-TCs: Click Here
W3C Workshop Report: Next Steps for XML Signature and XML Encryption
W3C's report of the Workshop on Next Steps for XML Signature and XML
Encryption is now available. The September 25-26, 2007 event was
hosted by VeriSign in Mountain View, California. This Workshop included
implementors and users of the XML Canonicalization, XML Signature and
XML Encryption suites of specifications. The participants included
implementers and specification writers that have built their work on
top of these specifications. Participants in the workshop had to submit
a position paper. The workshop had 25 participants from over fifteen
organizations. The aim of this workshop was to gather information and
experiences with these specifications, to start to build community
consensus, and to make initial recommendations to the W3C about possible
next steps for the XML Security specifications. The report shows strong
interest in additional work on XML security at W3C. A basic signature
profile, the referencing and transform models, updating the set of
supported cryptographic algorithms, and revisiting XML canonicalization
were seen as highest priority among the several topics identified by
the participants. The XML Security Specifications Maintenance Working
Group has been chartered to produce a draft charter for follow-up work.
This Workshop report will serve as input to that deliverable. To enable
discussion among Workshop attendees, Working Group members, and the
broader community, a new mailing list has been created. Participation
in that mailing list is open to all interested parties. More Information
See also the XML Security Specifications Maintenance WG: Click Here
Encryption is now available. The September 25-26, 2007 event was
hosted by VeriSign in Mountain View, California. This Workshop included
implementors and users of the XML Canonicalization, XML Signature and
XML Encryption suites of specifications. The participants included
implementers and specification writers that have built their work on
top of these specifications. Participants in the workshop had to submit
a position paper. The workshop had 25 participants from over fifteen
organizations. The aim of this workshop was to gather information and
experiences with these specifications, to start to build community
consensus, and to make initial recommendations to the W3C about possible
next steps for the XML Security specifications. The report shows strong
interest in additional work on XML security at W3C. A basic signature
profile, the referencing and transform models, updating the set of
supported cryptographic algorithms, and revisiting XML canonicalization
were seen as highest priority among the several topics identified by
the participants. The XML Security Specifications Maintenance Working
Group has been chartered to produce a draft charter for follow-up work.
This Workshop report will serve as input to that deliverable. To enable
discussion among Workshop attendees, Working Group members, and the
broader community, a new mailing list has been created. Participation
in that mailing list is open to all interested parties. More Information
See also the XML Security Specifications Maintenance WG: Click Here
XML Data Interchange in Java ME Applications
In this article the author shows how the Data Transfer Object design
pattern is implemented in Java ME architectures and why you might want
to use XML-based DTOs rather than Java beans for faster data interchange
between tiers. Author Mario La Menza presents an example architecture
that supports the use of XML-based DTOs and also introduces MockMe, a
free tool for generating XML-based mock objects so you can test the
presentation layer of your Java mobile applications without waiting for
server-side data. While many Java mobile application developers do go
the route of serializing DTOs, this approach is limited by the fact that
DTOs by definition have no logic, and Java ME does not support object
serialization. Without support for serialization it is not possible to
make an object exchange transparent. An alternative approach is to use
XML to encode the objects to be exchanged. In addition to the fact that
an object-XML-object mechanism doesn't differ much from object
serialization, it is readable by both computers and humans, unlike a
serialized object. Human readability simplifies the process of debugging
application code because generating different instances of the same
object is just a matter of editing an XML file. Furthermore, you can use
any browser to send a request to the server and observe its response.
Finally, using XML for data interchange means that your application can
interact with clients built using different technologies, not just Java
ME but also Java Standard Edition and .Net, for example. On the other
hand, the almost universally recognized downside of using XML for data
interchange is the inherent parsing processes and syntactic analysis
involved. Rather than spending a lot of time on this aspect of your code,
or being frustrated by Java ME's lack of support for XML, you can use
a small-memory XML parser. Examples later in this article are based on
the KXML library. More Information
pattern is implemented in Java ME architectures and why you might want
to use XML-based DTOs rather than Java beans for faster data interchange
between tiers. Author Mario La Menza presents an example architecture
that supports the use of XML-based DTOs and also introduces MockMe, a
free tool for generating XML-based mock objects so you can test the
presentation layer of your Java mobile applications without waiting for
server-side data. While many Java mobile application developers do go
the route of serializing DTOs, this approach is limited by the fact that
DTOs by definition have no logic, and Java ME does not support object
serialization. Without support for serialization it is not possible to
make an object exchange transparent. An alternative approach is to use
XML to encode the objects to be exchanged. In addition to the fact that
an object-XML-object mechanism doesn't differ much from object
serialization, it is readable by both computers and humans, unlike a
serialized object. Human readability simplifies the process of debugging
application code because generating different instances of the same
object is just a matter of editing an XML file. Furthermore, you can use
any browser to send a request to the server and observe its response.
Finally, using XML for data interchange means that your application can
interact with clients built using different technologies, not just Java
ME but also Java Standard Edition and .Net, for example. On the other
hand, the almost universally recognized downside of using XML for data
interchange is the inherent parsing processes and syntactic analysis
involved. Rather than spending a lot of time on this aspect of your code,
or being frustrated by Java ME's lack of support for XML, you can use
a small-memory XML parser. Examples later in this article are based on
the KXML library. More Information
MySQL to Get Injection of Google Code
MySQL has laid out its software road map through 2009, including some
code contributed by Google and security improvements that are due in
MySQL 7.0. Google is secretive about the distributed architecture
underlying its services, but it's known to be one of MySQL's biggest
users, running hundreds or even thousands of its databases worldwide.
The search company has done a lot of work customizing MySQL to meet
its special needs, which include better database replication, and tools
to monitor a high volume of database instances. MySQL 5.1 is scheduled
for general availability in the first quarter next year. Advances
include table and index partitioning, which should boost data warehousing
performance, and the option of row-based replication, which lets
companies create more exact back-up replicas. The big change in 6.0
will be the availability of MySQL's storage engine, Falcon. The most
popular storage engine for MySQL has historically been InnoDB, but two
years ago Oracle acquired InnoDB's developer, Innobase. Oracle continued
to license the software to MySQL, but MySQL wanted an alternative.
Falcon will do crash recovery and roll-back operations faster than
InnoDB because they are done from main memory, Schumacher said, but some
InnoDB features, like foreign key support and full-text indexing, won't
be supported until MySQL 6.1. 6.1 is due to go into beta in mid-2008
and start to ship widely in 2009. Improvements include better prepared
statements and server-side cursors, Schumacher said. Despite all the
buzz a few years ago about native XML (Extensible Markup Language)
support, Axmark said he's still waiting for a clear signal about what
customers want. Until then it's not a big priority for MySQL, although
there are some XML capabilities in 5.1. More Information
code contributed by Google and security improvements that are due in
MySQL 7.0. Google is secretive about the distributed architecture
underlying its services, but it's known to be one of MySQL's biggest
users, running hundreds or even thousands of its databases worldwide.
The search company has done a lot of work customizing MySQL to meet
its special needs, which include better database replication, and tools
to monitor a high volume of database instances. MySQL 5.1 is scheduled
for general availability in the first quarter next year. Advances
include table and index partitioning, which should boost data warehousing
performance, and the option of row-based replication, which lets
companies create more exact back-up replicas. The big change in 6.0
will be the availability of MySQL's storage engine, Falcon. The most
popular storage engine for MySQL has historically been InnoDB, but two
years ago Oracle acquired InnoDB's developer, Innobase. Oracle continued
to license the software to MySQL, but MySQL wanted an alternative.
Falcon will do crash recovery and roll-back operations faster than
InnoDB because they are done from main memory, Schumacher said, but some
InnoDB features, like foreign key support and full-text indexing, won't
be supported until MySQL 6.1. 6.1 is due to go into beta in mid-2008
and start to ship widely in 2009. Improvements include better prepared
statements and server-side cursors, Schumacher said. Despite all the
buzz a few years ago about native XML (Extensible Markup Language)
support, Axmark said he's still waiting for a clear signal about what
customers want. Until then it's not a big priority for MySQL, although
there are some XML capabilities in 5.1. More Information
Make Ajax Development Easier With AjaxTags
Traditionally, Web-based user interfaces (including both pages and
applications) have required that each request made by the user forced
a page refresh, consuming a considerable amount of time and bandwidth.
Repeated page refreshes can result in a fairly slow and clunky Web
experience, even for users with the fastest broadband connection
available. These days, developers everywhere are flocking to new
tricks and techniques to drastically improve the performance and user
experience within Web-based applications. Web applications coded with
Ajax can allow data to be sent to the server asynchronously in the
background, while simultaneously updating various parts of the Web
page being viewed without a page reload. Ajax comprises a number of
objects and technologies. And despite the X initial in the acronym
Ajax, XML might never be used at all. The response sent back from the
browser could be one of various types or formats, including but not
limited to plain text, HTML, or XML. This article describes a compact
little JSP tag library that uses some external JavaScript to bring
easy-to-use Ajax support to your JSP pages: AjaxTags. More Information
applications) have required that each request made by the user forced
a page refresh, consuming a considerable amount of time and bandwidth.
Repeated page refreshes can result in a fairly slow and clunky Web
experience, even for users with the fastest broadband connection
available. These days, developers everywhere are flocking to new
tricks and techniques to drastically improve the performance and user
experience within Web-based applications. Web applications coded with
Ajax can allow data to be sent to the server asynchronously in the
background, while simultaneously updating various parts of the Web
page being viewed without a page reload. Ajax comprises a number of
objects and technologies. And despite the X initial in the acronym
Ajax, XML might never be used at all. The response sent back from the
browser could be one of various types or formats, including but not
limited to plain text, HTML, or XML. This article describes a compact
little JSP tag library that uses some external JavaScript to bring
easy-to-use Ajax support to your JSP pages: AjaxTags. More Information
Tuesday, October 23, 2007
SIP Interface to VoiceXML Media Services
Members of the IETF Media Server Control (MEDIACTRL) Working Group have
released an initial Internet Draft for "SIP Interface to VoiceXML Media
Services." Commonly, application servers control media servers use this
protocol for pure VoiceXML processing capabilities. This protocol is
an adjunct to the full MEDIACTRL protocol and packages mechanism.
VoiceXML 2.x is a World Wide Web Consortium (W3C) standard for creating
audio and video dialogs that feature synthesized speech, digitized audio,
recognition of spoken and DTMF key input, recording of audio and video,
telephony, and mixed initiative conversations. VoiceXML allows Web-based
development and content delivery paradigms to be used with interactive
video and voice response applications. The interface described here
leverages a mechanism for identifying dialog media services first
described in RFC 4240. The interface has been updated and extended to
support the W3C Recommendation for VoiceXML 2.0 and VoiceXML 2.1. A set
of commonly implemented functions and extensions have been specified
including VoiceXML dialog preparation, outbound calling, video media
support, and transfers. VoiceXML session variable mappings have been
defined for SIP with an extensible mechanism for passing
application-specific values into the VoiceXML application. Mechanisms
for returning data to the Application Server have also been added. Among
the use cases: CCXML/VoiceXML. CCXML 1.0 defines language elements that
allow for Dialogs to be prepared, started, and terminated; it further
allows for data to be returned by the dialog environment, for call
transfers to be requested (by the dialog) and responded to by the CCXML
application, and for arbitrary eventing between the CCXML application
and running dialog application. The interface described in this document
can be used by CCXML 1.0 implementations to control VoiceXML Media
Servers. More Information See also IETF MEDIACTRL) WG Charter: Click Here
released an initial Internet Draft for "SIP Interface to VoiceXML Media
Services." Commonly, application servers control media servers use this
protocol for pure VoiceXML processing capabilities. This protocol is
an adjunct to the full MEDIACTRL protocol and packages mechanism.
VoiceXML 2.x is a World Wide Web Consortium (W3C) standard for creating
audio and video dialogs that feature synthesized speech, digitized audio,
recognition of spoken and DTMF key input, recording of audio and video,
telephony, and mixed initiative conversations. VoiceXML allows Web-based
development and content delivery paradigms to be used with interactive
video and voice response applications. The interface described here
leverages a mechanism for identifying dialog media services first
described in RFC 4240. The interface has been updated and extended to
support the W3C Recommendation for VoiceXML 2.0 and VoiceXML 2.1. A set
of commonly implemented functions and extensions have been specified
including VoiceXML dialog preparation, outbound calling, video media
support, and transfers. VoiceXML session variable mappings have been
defined for SIP with an extensible mechanism for passing
application-specific values into the VoiceXML application. Mechanisms
for returning data to the Application Server have also been added. Among
the use cases: CCXML/VoiceXML. CCXML 1.0 defines language elements that
allow for Dialogs to be prepared, started, and terminated; it further
allows for data to be returned by the dialog environment, for call
transfers to be requested (by the dialog) and responded to by the CCXML
application, and for arbitrary eventing between the CCXML application
and running dialog application. The interface described in this document
can be used by CCXML 1.0 implementations to control VoiceXML Media
Servers. More Information See also IETF MEDIACTRL) WG Charter: Click Here
The Future of File Systems: Jeff Bonwick and Bill Moore Explain ZFS
In this interview, ACM Queue speaks with two Sun engineers who are
bringing file systems into the 21st century. Jeff Bonwick, CTO for
storage at Sun, led development of the ZFS file system, which is now
part of Solaris. Bonwick and his co-lead, Sun Distinguished Engineer
Bill Moore, developed ZFS to address many of the problems they saw
with current file systems, such as data integrity, scalability, and
administration. Bonwick and Moore explain what makes ZFS such a big
leap forward. "One of the design principles we set for ZFS was: never,
ever trust the underlying hardware. As soon as an application generates
data, we generate a checksum for the data while we're still in the same
fault domain where the application generated the data, running on the
same CPU and the same memory subsystem. Then we store the data and the
checksum separately on disk so that a single failure cannot take them
both out. When we read the data back, we validate it against that
checksum and see if it's indeed what we think we wrote out before. If
it's not, we employ all sorts of recovery mechanisms. Because of that,
we can, on very cheap hardware, provide more reliable storage than you
could get with the most reliable external storage. It doesn't matter
how perfect your storage is, if the data gets corrupted in flight --
and we've actually seen many customer cases where this happens -- then
nothing you can do can recover from that. With ZFS, on the other hand,
we can actually authenticate that we got the right answer back and,
if not, enact a bunch of recovery scenarios. That's data integrity.
Another design goal we had was to simplify storage management. When you
're thinking about petabytes of data and hundreds, maybe even thousands
of disk drives, you're talking about something that no human would ever
willingly take care of. ZFS is composed of several layers,
architecturally, but the core of the whole thing is a transactional
object store. The bulk of ZFS, the bulk of the code, is providing a
transactional store of objects. You can have up to 264 objects, each
264 bytes in size, and you can perform arbitrary atomic transactions
on those objects. Moreover, a storage pool can have up to 264 sets of
these objects, each of which is a logically independent file system.
Given this foundation, a lot of the heavy lifting of writing a Posix
file system is already done for you..." More Information See also 'What is ZFS?': Click Here
bringing file systems into the 21st century. Jeff Bonwick, CTO for
storage at Sun, led development of the ZFS file system, which is now
part of Solaris. Bonwick and his co-lead, Sun Distinguished Engineer
Bill Moore, developed ZFS to address many of the problems they saw
with current file systems, such as data integrity, scalability, and
administration. Bonwick and Moore explain what makes ZFS such a big
leap forward. "One of the design principles we set for ZFS was: never,
ever trust the underlying hardware. As soon as an application generates
data, we generate a checksum for the data while we're still in the same
fault domain where the application generated the data, running on the
same CPU and the same memory subsystem. Then we store the data and the
checksum separately on disk so that a single failure cannot take them
both out. When we read the data back, we validate it against that
checksum and see if it's indeed what we think we wrote out before. If
it's not, we employ all sorts of recovery mechanisms. Because of that,
we can, on very cheap hardware, provide more reliable storage than you
could get with the most reliable external storage. It doesn't matter
how perfect your storage is, if the data gets corrupted in flight --
and we've actually seen many customer cases where this happens -- then
nothing you can do can recover from that. With ZFS, on the other hand,
we can actually authenticate that we got the right answer back and,
if not, enact a bunch of recovery scenarios. That's data integrity.
Another design goal we had was to simplify storage management. When you
're thinking about petabytes of data and hundreds, maybe even thousands
of disk drives, you're talking about something that no human would ever
willingly take care of. ZFS is composed of several layers,
architecturally, but the core of the whole thing is a transactional
object store. The bulk of ZFS, the bulk of the code, is providing a
transactional store of objects. You can have up to 264 objects, each
264 bytes in size, and you can perform arbitrary atomic transactions
on those objects. Moreover, a storage pool can have up to 264 sets of
these objects, each of which is a logically independent file system.
Given this foundation, a lot of the heavy lifting of writing a Posix
file system is already done for you..." More Information See also 'What is ZFS?': Click Here
OASIS EDXL Hospital AVailability Exchange (HAVE) Version 1.0
The EDXL Distribution Element (DE) specification describes a standard
message distribution framework for data sharing among emergency
information systems using the XML-based Emergency Data Exchange
Language (EDXL). This format may be used over any data transmission
system, including but not limited to the SOAP HTTP binding. EDXL-HAVE
specifies an EDXL-based XML document format that allows the
communication of the status of a hospital, its services, and its
resources. These include bed capacity and availability, emergency
department status, available service coverage, and the status of a
hospital's facility and operations. This format may be used over any
data transmission system, including but not limited to the SOAP HTTP
binding. In a disaster or emergency situation, there is a need for
hospitals to be able to communicate with each other, and with other
members of the emergency response community. The ability to exchange
data in regard to hospitals' bed availability, status, services, and
capacity enables both hospitals and other emergency agencies to
respond to emergencies and disaster situations with greater efficiency
and speed. In particular, it will allow emergency dispatchers and
managers to make sound logistics decisions -- where to route victims,
which hospitals have the ability to provide the needed service. Many
hospitals have expressed the need for, and indeed are currently using,
commercial or self-developed information technology that allows them
to publish this information to other hospitals in a region, as well
as EOCs, 9-1-1 centers, and EMS responders via a Web-based tool.
Systems that are available today do not record or present data in a
standardized format, creating a serious barrier to data sharing between
hospitals and emergency response groups. Without data standards,
parties of various kinds are unable to view data from hospitals in a
state or region that use a different system -- unless a specialized
interface is developed. More Information See also the OASIS Emergency Management TC: Click Here
message distribution framework for data sharing among emergency
information systems using the XML-based Emergency Data Exchange
Language (EDXL). This format may be used over any data transmission
system, including but not limited to the SOAP HTTP binding. EDXL-HAVE
specifies an EDXL-based XML document format that allows the
communication of the status of a hospital, its services, and its
resources. These include bed capacity and availability, emergency
department status, available service coverage, and the status of a
hospital's facility and operations. This format may be used over any
data transmission system, including but not limited to the SOAP HTTP
binding. In a disaster or emergency situation, there is a need for
hospitals to be able to communicate with each other, and with other
members of the emergency response community. The ability to exchange
data in regard to hospitals' bed availability, status, services, and
capacity enables both hospitals and other emergency agencies to
respond to emergencies and disaster situations with greater efficiency
and speed. In particular, it will allow emergency dispatchers and
managers to make sound logistics decisions -- where to route victims,
which hospitals have the ability to provide the needed service. Many
hospitals have expressed the need for, and indeed are currently using,
commercial or self-developed information technology that allows them
to publish this information to other hospitals in a region, as well
as EOCs, 9-1-1 centers, and EMS responders via a Web-based tool.
Systems that are available today do not record or present data in a
standardized format, creating a serious barrier to data sharing between
hospitals and emergency response groups. Without data standards,
parties of various kinds are unable to view data from hospitals in a
state or region that use a different system -- unless a specialized
interface is developed. More Information See also the OASIS Emergency Management TC: Click Here
Open Document Format v1.1 Accessibility Guidelines Version 1.0
Members of the OASIS Open Document Format for Office Applications
(OpenDocument) TC have approved a Committee Draft version of the
"Accessibility Guidelines" for public review. "Open Document Format
v1.1 Accessibility Guidelines Version 1.0" is a guide for Office
Applications that support version 1.1 of the OpenDocument format, to
promote and preserve accessible ODF documents. The public review
period ends 21-December-2007. From the Overview: "The Open Document
Format v1.1 (ODF) is capable of encoding and storing a lot of
structural and semantic information. This information is needed by
people with disabilities and the tools they use (assistive technologies),
to gain access to computers and information. This document provides
guidelines for ODF 1.1 implementation. A successful ODF 1.1
implementation will enable users with disabilities to read, create,
and edit documents -- with full access to all of the meaning and
intent -- just like a person without any disability. Accessibility
is about enabling people with disabilities to participate in substantial
life activities that include work and the use of services, products,
and information. In the context of ODF documents, this means that
people with disabilities should be able to participate fully in the
creation, review, and editing process of the documents. A blind person,
for example, should be able to work with a document someone else created
(by getting a text description of the images used). A person should be
able to fill out a form without using hands. A person with poor vision
should be able to read through presentation materials easily." More Information
(OpenDocument) TC have approved a Committee Draft version of the
"Accessibility Guidelines" for public review. "Open Document Format
v1.1 Accessibility Guidelines Version 1.0" is a guide for Office
Applications that support version 1.1 of the OpenDocument format, to
promote and preserve accessible ODF documents. The public review
period ends 21-December-2007. From the Overview: "The Open Document
Format v1.1 (ODF) is capable of encoding and storing a lot of
structural and semantic information. This information is needed by
people with disabilities and the tools they use (assistive technologies),
to gain access to computers and information. This document provides
guidelines for ODF 1.1 implementation. A successful ODF 1.1
implementation will enable users with disabilities to read, create,
and edit documents -- with full access to all of the meaning and
intent -- just like a person without any disability. Accessibility
is about enabling people with disabilities to participate in substantial
life activities that include work and the use of services, products,
and information. In the context of ODF documents, this means that
people with disabilities should be able to participate fully in the
creation, review, and editing process of the documents. A blind person,
for example, should be able to work with a document someone else created
(by getting a text description of the images used). A person should be
able to fill out a form without using hands. A person with poor vision
should be able to read through presentation materials easily." More Information
Roadmap for Accessible Rich Internet Applications (WAI-ARIA)
W3C announced that the Protocols and Formats Working Group has published
updated Working Drafts of the WAI-ARIA Roadmap, WAI-ARIA Roles, and
WAI-ARIA States and Properties. The WAI-ARIA Suite of documents
addresses the accessibility to people with disabilities of dynamic Web
content built with Ajax and DHTML. WAI-ARIA includes technologies to
map controls, Ajax live regions, and events to accessibility APIs,
including custom controls used for rich Internet applications. It also
describes new navigation techniques to mark common Web structures as
menus, primary content, secondary content, banner information and other
types of Web structures. Implementation of WAI-ARIA in languages such
as HTML 4, HTML 5 and XHTML is in active development. According to a
SecuritySpace Technology Penetration Report, more than 55% of all Web
sites today contain JavaScript, dramatically affecting the ability for
persons with disabilities to access Web content. HTML and other markup
does not provide adequate markup to support accessible dynamic content.
A number of W3C initiatives are underway to address this problem using
a declarative markup approach. This roadmap is designed to create a
bridge to fix the interoperability problem with assistive technologies
now by incorporating the appropriate meta data in current XHTML markup
to support today's accessibility API. It will incorporate some of the
advanced accessibility features, originally designed, in technologies
like XHTML2. The intent of XHTML 2 is to make the enablement of Web
applications and documents easier for authors. This roadmap will create
cross-cutting technologies that XHTML authors may incorporate in their
markup to describe GUI widgets and document structures to aide assistive
technology vendors in providing accessible, usable solutions. The W3C
WAI PF working group will work with User Agent manufacturers and
assistive technology vendors to ensure a working solution. More Information
updated Working Drafts of the WAI-ARIA Roadmap, WAI-ARIA Roles, and
WAI-ARIA States and Properties. The WAI-ARIA Suite of documents
addresses the accessibility to people with disabilities of dynamic Web
content built with Ajax and DHTML. WAI-ARIA includes technologies to
map controls, Ajax live regions, and events to accessibility APIs,
including custom controls used for rich Internet applications. It also
describes new navigation techniques to mark common Web structures as
menus, primary content, secondary content, banner information and other
types of Web structures. Implementation of WAI-ARIA in languages such
as HTML 4, HTML 5 and XHTML is in active development. According to a
SecuritySpace Technology Penetration Report, more than 55% of all Web
sites today contain JavaScript, dramatically affecting the ability for
persons with disabilities to access Web content. HTML and other markup
does not provide adequate markup to support accessible dynamic content.
A number of W3C initiatives are underway to address this problem using
a declarative markup approach. This roadmap is designed to create a
bridge to fix the interoperability problem with assistive technologies
now by incorporating the appropriate meta data in current XHTML markup
to support today's accessibility API. It will incorporate some of the
advanced accessibility features, originally designed, in technologies
like XHTML2. The intent of XHTML 2 is to make the enablement of Web
applications and documents easier for authors. This roadmap will create
cross-cutting technologies that XHTML authors may incorporate in their
markup to describe GUI widgets and document structures to aide assistive
technology vendors in providing accessible, usable solutions. The W3C
WAI PF working group will work with User Agent manufacturers and
assistive technology vendors to ensure a working solution. More Information
SOA Made Fast and Easy
Of the 11,000 largest enterprises worldwide, 95% are engaged in "some
type of effort to implement SOA," according to Susan Eustis, president
of WinterGreen Research: "Most of these projects have started out as
compliance efforts and have been extended to include a dashboard that
is used to manage the business. SOA starts out as a small trial
initiative before it is expanded." With so much work going on, the hype
around SOA has eroded. In its place are more than a few startling truths:
When it comes to SOA, the network is everything. Not every project is
SOA friendly. An often shockingly expensive initial SOA project will
pay for itself repeatedly over time, as other projects reuse the
stockpile of services -- provided you've made that reuse easy. Perhaps
the biggest school-of-hard-knocks lesson is when not to use a
services-approach. "SOA is not a means to an end. You need to use it
in the context of solving a business problem," says Steven Weiskircher,
vice president of IT for audio-electronics merchant Crutchfield, in
Charlottesville, Va. Crutchfield began an SOA pilot about two years
ago, when it upgraded its mission-critical catalog/call center, e-commerce
and retail order-taking applications, which are 90% custom code... When
the benefits of reusability are clear-cut, network executives are left
in a pickle. How can they make sure those bloated services fly across
the network, particularly as they scale horizontally and vertically?
Enter the XML appliance, which offloads processing of XML documents from
the server to a network device. Web-services standards specify use of
XML document headers that provide routing information, just as IP headers
do. Such functions are available in Cast Iron Systems' Application
Integration suite, Forum Systems' Vantage, Intel's XSLT Accelerator
(a software XML accelerator) and IBM's WebSphere DataPower, as well as
in Cisco's Application Oriented Networking (AON) line, via technology
the company gained in February, when it acquired Reactivity. When a Web
services-based SOA is coupled with an XML appliance, routing moves up
the stack. The packet becomes the message. The message is part of the
workflow that executes the business logic. Most agree and comply with
basic, well-proven Web-services standards [for SOA]. These include
WS-Security, SOAP and Universal Description, Discovery, and Integration.
In addition, the industry has several alphabets' worth of acronyms in
the works as standards or accepted widely. These include Java API for
XML-based Web Services, Business Process Execution Language, WS-Reliable
Messaging, WS-Addressing, SOAP with Attachments, Message Transmission
Optimization Mechanism and WS-Policy. More Information
type of effort to implement SOA," according to Susan Eustis, president
of WinterGreen Research: "Most of these projects have started out as
compliance efforts and have been extended to include a dashboard that
is used to manage the business. SOA starts out as a small trial
initiative before it is expanded." With so much work going on, the hype
around SOA has eroded. In its place are more than a few startling truths:
When it comes to SOA, the network is everything. Not every project is
SOA friendly. An often shockingly expensive initial SOA project will
pay for itself repeatedly over time, as other projects reuse the
stockpile of services -- provided you've made that reuse easy. Perhaps
the biggest school-of-hard-knocks lesson is when not to use a
services-approach. "SOA is not a means to an end. You need to use it
in the context of solving a business problem," says Steven Weiskircher,
vice president of IT for audio-electronics merchant Crutchfield, in
Charlottesville, Va. Crutchfield began an SOA pilot about two years
ago, when it upgraded its mission-critical catalog/call center, e-commerce
and retail order-taking applications, which are 90% custom code... When
the benefits of reusability are clear-cut, network executives are left
in a pickle. How can they make sure those bloated services fly across
the network, particularly as they scale horizontally and vertically?
Enter the XML appliance, which offloads processing of XML documents from
the server to a network device. Web-services standards specify use of
XML document headers that provide routing information, just as IP headers
do. Such functions are available in Cast Iron Systems' Application
Integration suite, Forum Systems' Vantage, Intel's XSLT Accelerator
(a software XML accelerator) and IBM's WebSphere DataPower, as well as
in Cisco's Application Oriented Networking (AON) line, via technology
the company gained in February, when it acquired Reactivity. When a Web
services-based SOA is coupled with an XML appliance, routing moves up
the stack. The packet becomes the message. The message is part of the
workflow that executes the business logic. Most agree and comply with
basic, well-proven Web-services standards [for SOA]. These include
WS-Security, SOAP and Universal Description, Discovery, and Integration.
In addition, the industry has several alphabets' worth of acronyms in
the works as standards or accepted widely. These include Java API for
XML-based Web Services, Business Process Execution Language, WS-Reliable
Messaging, WS-Addressing, SOAP with Attachments, Message Transmission
Optimization Mechanism and WS-Policy. More Information
CSS Mobile Profile 2.0
Members of the W3C CSS Working Group have released a Last Call Working
Draft for "CSS Mobile Profile 2.0," updating the previous draft of
2006-12-08. Comments are welcome through 15-November-2007. This subset
of Cascading Style Sheets (CSS) 2.1 is a baseline for implementations
of CSS on constrained devices like mobile phones, written with WICD
Mobile 1.0 to ensure interoperability and for alignment with OMA's
Wireless CSS Specification 1.1. The specification's intent is not to
produce a profile of CSS incompatible with the complete specification,
but rather to ensure that implementations that due to platform limitations
cannot support the entire specification implement a common subset that
is interoperable not only amongst constrained implementations but also
with complete ones. Since the goal of the specification is to define
a baseline interoperability level, user agents MAY accept CSS documents
conforming to CSS 2.1 or subsequent revisions of the CSS family of
Recommendations. Document sections 3 (Selectors), 4 (At-rules), and
5 (Properties) clarify features that are required or optional for
conformance. More Information See also the W3C Style Activity Statement: Click Here
Draft for "CSS Mobile Profile 2.0," updating the previous draft of
2006-12-08. Comments are welcome through 15-November-2007. This subset
of Cascading Style Sheets (CSS) 2.1 is a baseline for implementations
of CSS on constrained devices like mobile phones, written with WICD
Mobile 1.0 to ensure interoperability and for alignment with OMA's
Wireless CSS Specification 1.1. The specification's intent is not to
produce a profile of CSS incompatible with the complete specification,
but rather to ensure that implementations that due to platform limitations
cannot support the entire specification implement a common subset that
is interoperable not only amongst constrained implementations but also
with complete ones. Since the goal of the specification is to define
a baseline interoperability level, user agents MAY accept CSS documents
conforming to CSS 2.1 or subsequent revisions of the CSS family of
Recommendations. Document sections 3 (Selectors), 4 (At-rules), and
5 (Properties) clarify features that are required or optional for
conformance. More Information See also the W3C Style Activity Statement: Click Here
Friday, October 19, 2007
Update XML in DB2 9.5
This article discussed the W3C "XQuery Update Facility" specification
in the context of IBM DB2 9.5. The XQuery Update Facility extends the
XML Query language, XQuery. The XQuery Update Facility provides
expressions that can be used to make persistent changes to instances
of the XQuery 1.0 and XPath 2.0 Data Model. It provides facilities to
perform any or all of the following operations on an XDM instance:
insertion of a node, deletion of a node, modification of a node by
changing some of its properties while preserving its identity, and
creation of a modified copy of a node with a new identity. One of the
most significant new features in IBM DB2 9.5 for Linux, Unix and
Windows is the XML update functionality. The previous version, DB2 9,
introduced pureXML support for storing and indexing of XML data and
querying it with the SQL/XML and XQuery languages. Modifications to an
XML document were performed outside of the database server followed
by an update of the full document in DB2. Now DB2 9.5 introduces the
XQuery Update Facility, a standardized extension to XQuery that allows
you to modify, insert, or delete individual elements and attributes
within an XML document. This makes updating XML data easier and
provides higher performance. When DB2 9.5 executes the UPDATE statement,
it locates the relevant document(s) and modifies the specified elements
or attributes. This happens within the DB2 storage layer, that is the
document stays in DB2's internal hierarchical XML format the entire
time, without any parsing or serialization. Concurrency control and
logging happens on the level of full documents. Overall, this new
update process can often be 2x to 4x faster than the [DB2 9 pureXML]
process. This article describes how to perform such XML updates with
XQuery transform expressions. You'll see how to embed a transform in
UPDATE statements to permanently change data on disk, and in queries,
to modify XML data "on the fly" while reading it out without permanently
changing it. The latter can be useful if applications need to receive
an XML format that's different from the one in the database. More Information See also IBM Systems Journal: Click Here
in the context of IBM DB2 9.5. The XQuery Update Facility extends the
XML Query language, XQuery. The XQuery Update Facility provides
expressions that can be used to make persistent changes to instances
of the XQuery 1.0 and XPath 2.0 Data Model. It provides facilities to
perform any or all of the following operations on an XDM instance:
insertion of a node, deletion of a node, modification of a node by
changing some of its properties while preserving its identity, and
creation of a modified copy of a node with a new identity. One of the
most significant new features in IBM DB2 9.5 for Linux, Unix and
Windows is the XML update functionality. The previous version, DB2 9,
introduced pureXML support for storing and indexing of XML data and
querying it with the SQL/XML and XQuery languages. Modifications to an
XML document were performed outside of the database server followed
by an update of the full document in DB2. Now DB2 9.5 introduces the
XQuery Update Facility, a standardized extension to XQuery that allows
you to modify, insert, or delete individual elements and attributes
within an XML document. This makes updating XML data easier and
provides higher performance. When DB2 9.5 executes the UPDATE statement,
it locates the relevant document(s) and modifies the specified elements
or attributes. This happens within the DB2 storage layer, that is the
document stays in DB2's internal hierarchical XML format the entire
time, without any parsing or serialization. Concurrency control and
logging happens on the level of full documents. Overall, this new
update process can often be 2x to 4x faster than the [DB2 9 pureXML]
process. This article describes how to perform such XML updates with
XQuery transform expressions. You'll see how to embed a transform in
UPDATE statements to permanently change data on disk, and in queries,
to modify XML data "on the fly" while reading it out without permanently
changing it. The latter can be useful if applications need to receive
an XML format that's different from the one in the database. More Information See also IBM Systems Journal: Click Here
Why Microsoft Should Not Support SCA
Will Microsoft support Service Component Architecture (SCA)? It seems
unlikely... First, it's important to understand that SCA is purely
about portability -- it has nothing to do with interoperability. To
connect applications across vendor boundaries, SCA relies on standard
Web services, adding nothing extra. This is an important point, but
it's often lost (or misunderstood) in SCA discussions. Because some
of SCA's supporters describe it as a standard for SOA, people assume
it somehow enhances interoperability between products from different
vendors. This just isn't true, and so Microsoft not supporting SCA
will in no way affect anyone's ability to connect applications running
on different vendor platforms. But what about portability? Just as
the various Java EE specs have allowed some portability of code and
developer skills, SCA promises the same thing. Wouldn't Microsoft
supporting SCA help here? The answer is yes, but only a little. To
explain why, it's useful to look separately at the two main things
SCA defines: programming models for creating components in various
languages and an XML-based language for defining composites from
groups of these components... While some SCA skills portability will
occur -- at least everybody will be describing components and
composites using the same terms -- I'm doubtful that SCA will do much
to help move applications from one vendor's SCA product to another.
Put another way, don't look to SCA to play a big role in reducing
vendor lock-in... More Information See also the OASIS SCA TCs: Click Here
unlikely... First, it's important to understand that SCA is purely
about portability -- it has nothing to do with interoperability. To
connect applications across vendor boundaries, SCA relies on standard
Web services, adding nothing extra. This is an important point, but
it's often lost (or misunderstood) in SCA discussions. Because some
of SCA's supporters describe it as a standard for SOA, people assume
it somehow enhances interoperability between products from different
vendors. This just isn't true, and so Microsoft not supporting SCA
will in no way affect anyone's ability to connect applications running
on different vendor platforms. But what about portability? Just as
the various Java EE specs have allowed some portability of code and
developer skills, SCA promises the same thing. Wouldn't Microsoft
supporting SCA help here? The answer is yes, but only a little. To
explain why, it's useful to look separately at the two main things
SCA defines: programming models for creating components in various
languages and an XML-based language for defining composites from
groups of these components... While some SCA skills portability will
occur -- at least everybody will be describing components and
composites using the same terms -- I'm doubtful that SCA will do much
to help move applications from one vendor's SCA product to another.
Put another way, don't look to SCA to play a big role in reducing
vendor lock-in... More Information See also the OASIS SCA TCs: Click Here
The Search Engine Unfriendliness of Web 2.0
Wouldn't it be great if all those whiz-bang Web 2.0 interactive elements
based on AJAX (Asynchronous JavaScript and XML) and Flash -- such as
widgets and gadgets and Google Maps mashups -- were search engine
optimal? Unfortunately, that's not the case. In fact, these
technologies are inherently unfriendly to search engine spiders. So,
if you intend to harness Web 2.0 technologies for wider syndication,
increased conversion, improved usability and greater customer engagement,
you'd better read on or you'll end up missing the boat when it comes
to better search engine rankings. When it comes to AJAX and Flash, the
onus is on you to render them search engine friendly. The major search
engines just can't cope with these Web 2.0 technologies very well at
all. Some search engines, including Google, have rudimentary means of
extracting content and links from Flash. Nonetheless, any content or
navigation embedded within Flash will, at best, rank poorly in
comparison to a static, HTML-based counterpart, and at worst, not
even make it into the search engine's index. Google's view on Flash
is that it doesn't provide a user-friendly experience. Flash is wholly
inaccessible to the vision-impaired, unrenderable on devices such as
mobile phones and PDAs, and can't be accessed without broadband
connectivity. In particular, Google frowns on navigational elements
presented exclusively in Flash. Given this stance, Google isn't likely
to make big improvements on how it crawls, indexes and ranks Flash
files anytime soon. So, it's in your hands to either replace those
Flash elements with a more accessible alternative like CSS/DHTML or
to employ a Web design approach known as "progressive enhancement...
AJAX poses similar problems to spiders as Flash does because AJAX
also relies on JavaScript. Search engine spiders can't execute
JavaScript commands. AJAX can be used to pull data seamlessly in
the background onto an already loaded Web page, sparing the user
from the "click-and-wait" frustrations associated with more
conventional Web sites, but the additional content that's pulled in
via AJAX is invisible to the spiders unless it's preloaded into the
page's HTML and simply hidden from the user via CSS. Here, progressive
enhancement renders a non-JavaScript version of the AJAX application
for spiders and JavaScript-incapable browsers. A low-tech alternative
to progressive enhancement is to place an HTML version of your AJAX
application within noscript tags.
based on AJAX (Asynchronous JavaScript and XML) and Flash -- such as
widgets and gadgets and Google Maps mashups -- were search engine
optimal? Unfortunately, that's not the case. In fact, these
technologies are inherently unfriendly to search engine spiders. So,
if you intend to harness Web 2.0 technologies for wider syndication,
increased conversion, improved usability and greater customer engagement,
you'd better read on or you'll end up missing the boat when it comes
to better search engine rankings. When it comes to AJAX and Flash, the
onus is on you to render them search engine friendly. The major search
engines just can't cope with these Web 2.0 technologies very well at
all. Some search engines, including Google, have rudimentary means of
extracting content and links from Flash. Nonetheless, any content or
navigation embedded within Flash will, at best, rank poorly in
comparison to a static, HTML-based counterpart, and at worst, not
even make it into the search engine's index. Google's view on Flash
is that it doesn't provide a user-friendly experience. Flash is wholly
inaccessible to the vision-impaired, unrenderable on devices such as
mobile phones and PDAs, and can't be accessed without broadband
connectivity. In particular, Google frowns on navigational elements
presented exclusively in Flash. Given this stance, Google isn't likely
to make big improvements on how it crawls, indexes and ranks Flash
files anytime soon. So, it's in your hands to either replace those
Flash elements with a more accessible alternative like CSS/DHTML or
to employ a Web design approach known as "progressive enhancement...
AJAX poses similar problems to spiders as Flash does because AJAX
also relies on JavaScript. Search engine spiders can't execute
JavaScript commands. AJAX can be used to pull data seamlessly in
the background onto an already loaded Web page, sparing the user
from the "click-and-wait" frustrations associated with more
conventional Web sites, but the additional content that's pulled in
via AJAX is invisible to the spiders unless it's preloaded into the
page's HTML and simply hidden from the user via CSS. Here, progressive
enhancement renders a non-JavaScript version of the AJAX application
for spiders and JavaScript-incapable browsers. A low-tech alternative
to progressive enhancement is to place an HTML version of your AJAX
application within noscript tags.
Knowledge Services on the Semantic Web
In this article we present a Semantic Web-enabled architecture for
trading knowledge assets. The most suitable environment for
technologically supporting Web-enabled knowledge provision services
is the use of Semantic Web services. In this area, we should note the
recent work of the Semantic Annotations for WSDL (SAWSDL) Working
Group of the W3C, whose objective is to develop a mechanism to enable
semantic annotation of Web services descriptions. In our work we
developed multifaceted ontological structures in order to define the
necessary modeling primitives that are important for describing
knowledge provision services that go beyond common Web services like
a flight booking or book selling. The knowledge service utilizes the
content and context ontology for a twofold purpose: to discover
knowledge objects within a collection and to be discovered as a service,
namely to determine its identity. We have specified an enhanced
universal discovery, description, and integration (UDDI) platform
known as k-UDDI, which enables the discovery, negotiation, and
invocation of knowledge services with the incorporation incorporation
of reference ontologies that semantically enrich the Web services
infrastructure. The k-UDDI holds all reference ontologies that allow
a common understanding of services and facilitate semantically enhanced
service discovery, IPR and business specific issues and finally
negotiation processes generating sound contracts. Knowledge service
discovery is provided by the discovery service of the registry, which
is exposed via a Web service interface. As knowledge services will be
traded, mechanisms are needed to support negotiation and contracting
tasks. We make use of our negotiation ontology and develop a flexible
negotiation mechanism that enables bargaining between the service
provider and requester concerning the terms and conditions of use of a
knowledge service. [Also published in CACM 50/10 (October 2007), 53-58.]
trading knowledge assets. The most suitable environment for
technologically supporting Web-enabled knowledge provision services
is the use of Semantic Web services. In this area, we should note the
recent work of the Semantic Annotations for WSDL (SAWSDL) Working
Group of the W3C, whose objective is to develop a mechanism to enable
semantic annotation of Web services descriptions. In our work we
developed multifaceted ontological structures in order to define the
necessary modeling primitives that are important for describing
knowledge provision services that go beyond common Web services like
a flight booking or book selling. The knowledge service utilizes the
content and context ontology for a twofold purpose: to discover
knowledge objects within a collection and to be discovered as a service,
namely to determine its identity. We have specified an enhanced
universal discovery, description, and integration (UDDI) platform
known as k-UDDI, which enables the discovery, negotiation, and
invocation of knowledge services with the incorporation incorporation
of reference ontologies that semantically enrich the Web services
infrastructure. The k-UDDI holds all reference ontologies that allow
a common understanding of services and facilitate semantically enhanced
service discovery, IPR and business specific issues and finally
negotiation processes generating sound contracts. Knowledge service
discovery is provided by the discovery service of the registry, which
is exposed via a Web service interface. As knowledge services will be
traded, mechanisms are needed to support negotiation and contracting
tasks. We make use of our negotiation ontology and develop a flexible
negotiation mechanism that enables bargaining between the service
provider and requester concerning the terms and conditions of use of a
knowledge service. [Also published in CACM 50/10 (October 2007), 53-58.]
Semantic Web Visions: A Tale of Two Studies
Professor Jorge Cardoso of the University of Madeira, Portugal, has
written a very interesting paper titled "The Semantic Web Vision: Where
are We?" Cardoso defines the Semantic Web as "a machine-readable World
Wide Web" and he notes "a significant evolution of standards as
improvements and innovations allow the delivery of more complex, more
sophisticated, and more far-reaching semantic applications." Cardoso
posted to a variety of technical e-mail lists to solicit survey
responses and sent 40 personal invitations. Two-thirds of the 627
responses came from academics and 18% from industry with 16% of
respondents working in both academia and industry. He asked survey
participants to report their use of ontology editors, ontology
languages, and reasoning engines, software applications that derive
new facts or associations from existing information. Refer to his paper
for findings. Over 50% of respondents reported using ontologies for
either or both of two purposes: to share common understanding of the
structure of information among people or software agents (69.9%) and
to enable reuse of domain knowledge (56.3%). These are knowledge
management functions, stepping-stones on the path to the vision of
autonomous software agents negotiating the Web that Tim Berners-Lee
first articulated over ten years ago. Only 12.4% of answers indicated
use of ontologies for purposes that are, perhaps, closer to
actualization of that vision, for "code generation, data integration,
data publication and exchange, document annotation, information
retrieval, search, reasoning, annotating experiments, building common
vocabularies, Web service discovery or mediation, and enabling
interoperability." Nonetheless, Cardoso concludes that "70% of people
working on the Semantic Web are committed to deploying real-world
systems that will go into production in less than 2 years."
written a very interesting paper titled "The Semantic Web Vision: Where
are We?" Cardoso defines the Semantic Web as "a machine-readable World
Wide Web" and he notes "a significant evolution of standards as
improvements and innovations allow the delivery of more complex, more
sophisticated, and more far-reaching semantic applications." Cardoso
posted to a variety of technical e-mail lists to solicit survey
responses and sent 40 personal invitations. Two-thirds of the 627
responses came from academics and 18% from industry with 16% of
respondents working in both academia and industry. He asked survey
participants to report their use of ontology editors, ontology
languages, and reasoning engines, software applications that derive
new facts or associations from existing information. Refer to his paper
for findings. Over 50% of respondents reported using ontologies for
either or both of two purposes: to share common understanding of the
structure of information among people or software agents (69.9%) and
to enable reuse of domain knowledge (56.3%). These are knowledge
management functions, stepping-stones on the path to the vision of
autonomous software agents negotiating the Web that Tim Berners-Lee
first articulated over ten years ago. Only 12.4% of answers indicated
use of ontologies for purposes that are, perhaps, closer to
actualization of that vision, for "code generation, data integration,
data publication and exchange, document annotation, information
retrieval, search, reasoning, annotating experiments, building common
vocabularies, Web service discovery or mediation, and enabling
interoperability." Nonetheless, Cardoso concludes that "70% of people
working on the Semantic Web are committed to deploying real-world
systems that will go into production in less than 2 years."
Semantic Web Visions: A Tale of Two Studies
Professor Jorge Cardoso of the University of Madeira, Portugal, has
written a very interesting paper titled "The Semantic Web Vision: Where
are We?" Cardoso defines the Semantic Web as "a machine-readable World
Wide Web" and he notes "a significant evolution of standards as
improvements and innovations allow the delivery of more complex, more
sophisticated, and more far-reaching semantic applications." Cardoso
posted to a variety of technical e-mail lists to solicit survey
responses and sent 40 personal invitations. Two-thirds of the 627
responses came from academics and 18% from industry with 16% of
respondents working in both academia and industry. He asked survey
participants to report their use of ontology editors, ontology
languages, and reasoning engines, software applications that derive
new facts or associations from existing information. Refer to his paper
for findings. Over 50% of respondents reported using ontologies for
either or both of two purposes: to share common understanding of the
structure of information among people or software agents (69.9%) and
to enable reuse of domain knowledge (56.3%). These are knowledge
management functions, stepping-stones on the path to the vision of
autonomous software agents negotiating the Web that Tim Berners-Lee
first articulated over ten years ago. Only 12.4% of answers indicated
use of ontologies for purposes that are, perhaps, closer to
actualization of that vision, for "code generation, data integration,
data publication and exchange, document annotation, information
retrieval, search, reasoning, annotating experiments, building common
vocabularies, Web service discovery or mediation, and enabling
interoperability." Nonetheless, Cardoso concludes that "70% of people
working on the Semantic Web are committed to deploying real-world
systems that will go into production in less than 2 years."
written a very interesting paper titled "The Semantic Web Vision: Where
are We?" Cardoso defines the Semantic Web as "a machine-readable World
Wide Web" and he notes "a significant evolution of standards as
improvements and innovations allow the delivery of more complex, more
sophisticated, and more far-reaching semantic applications." Cardoso
posted to a variety of technical e-mail lists to solicit survey
responses and sent 40 personal invitations. Two-thirds of the 627
responses came from academics and 18% from industry with 16% of
respondents working in both academia and industry. He asked survey
participants to report their use of ontology editors, ontology
languages, and reasoning engines, software applications that derive
new facts or associations from existing information. Refer to his paper
for findings. Over 50% of respondents reported using ontologies for
either or both of two purposes: to share common understanding of the
structure of information among people or software agents (69.9%) and
to enable reuse of domain knowledge (56.3%). These are knowledge
management functions, stepping-stones on the path to the vision of
autonomous software agents negotiating the Web that Tim Berners-Lee
first articulated over ten years ago. Only 12.4% of answers indicated
use of ontologies for purposes that are, perhaps, closer to
actualization of that vision, for "code generation, data integration,
data publication and exchange, document annotation, information
retrieval, search, reasoning, annotating experiments, building common
vocabularies, Web service discovery or mediation, and enabling
interoperability." Nonetheless, Cardoso concludes that "70% of people
working on the Semantic Web are committed to deploying real-world
systems that will go into production in less than 2 years."
Semantic Web Services, Part 1
Semantic Web services (SWS) has been a vigorous technology research
area for about six years. A great deal of innovative work has been done,
and a great deal remains. Several large research initiatives have been
producing substantial bodies of technology, which are gradually maturing.
SOA vendors are looking seriously at semantic technologies and have
made initial commitments to supporting selected approaches. In the
world of standards, numerous activities have reflected the strong
interest in this work. Perhaps the most visible of these is SAWSDL
(Semantic Annotations for WSDL and XML Schema). SAWSDL recently
achieved Recommendation status at the World Wide Web Consortium.
SAWSDL's completion provides a fitting opportunity to reflect on the
state of the art and practice in SWS -- past, present, and future.
This two-part installment of 'Trends & Controversies' discusses what
has been accomplished in SWS, what value SWS can ultimately provide,
and where we can go from here to reap these technologies' benefits.
The essays in this issue effectively define service technology needs
from a long-term industry perspective. Brodie starts by recognizing
that, although industry has embraced services as the way forward on
some of its most pressing problems, SOA is a framework for integration
rather than the solution for integration. He outlines the contributions
that are needed from semantic technologies and the implications for
computing beyond services. Leymann emphasizes the broad scope of
service-related technical requirements that must be addressed before
SWS can effectively meet businesses' IT needs and semantically enabled
SOA can be regarded as an enterprise solution rather than a mere
packaging of applications. He argues that a great deal remains to be
done in several important areas. More Information See also W3C SAWSDL Click Here
area for about six years. A great deal of innovative work has been done,
and a great deal remains. Several large research initiatives have been
producing substantial bodies of technology, which are gradually maturing.
SOA vendors are looking seriously at semantic technologies and have
made initial commitments to supporting selected approaches. In the
world of standards, numerous activities have reflected the strong
interest in this work. Perhaps the most visible of these is SAWSDL
(Semantic Annotations for WSDL and XML Schema). SAWSDL recently
achieved Recommendation status at the World Wide Web Consortium.
SAWSDL's completion provides a fitting opportunity to reflect on the
state of the art and practice in SWS -- past, present, and future.
This two-part installment of 'Trends & Controversies' discusses what
has been accomplished in SWS, what value SWS can ultimately provide,
and where we can go from here to reap these technologies' benefits.
The essays in this issue effectively define service technology needs
from a long-term industry perspective. Brodie starts by recognizing
that, although industry has embraced services as the way forward on
some of its most pressing problems, SOA is a framework for integration
rather than the solution for integration. He outlines the contributions
that are needed from semantic technologies and the implications for
computing beyond services. Leymann emphasizes the broad scope of
service-related technical requirements that must be addressed before
SWS can effectively meet businesses' IT needs and semantically enabled
SOA can be regarded as an enterprise solution rather than a mere
packaging of applications. He argues that a great deal remains to be
done in several important areas. More Information See also W3C SAWSDL Click Here
Revised Civic Location Format for PIDF-LO
Members of the IETF Geographic Location/Privacy (GEOPRIV) Working Group
have released an updated version of "Revised Civic Location Format for
PIDF-LO." The work was produced within the IETF Real-time Applications
and Infrastructure Area. RFC 4119 "A Presence-based GEOPRIV Location
Object Format" defines a location object which extends the XML-based
Presence Information Data Format (PIDF), designed for communicating
privacy-sensitive presence information and which has similar properties.
RFC 4776 "Dynamic Host Configuration Protocol (DHCPv4 and DHCPv6)
Option for Civic Addresses Configuration Information" further defines
information about the country, administrative units such as states,
provinces, and cities, as well as street addresses, postal community
names, and building information. The option allows multiple renditions
of the same address in different scripts and languages. This document
("Revised Civic Location Format for PIDF-LO") augments the GEOPRIV civic
form to include the additional civic parameters captured in RFC 4776.
The document also introduces a hierarchical structure for thoroughfare
(road) identification which is employed in some countries. New elements
are defined to allow for even more precision in specifying a civic
location. The XML schema (Section 4, 'Civic Address Schema') defined
for civic addresses allows for the addition of the "xml:lang" attribute
to all elements except "country" and "PLC", which both contain
language-neutral values. The IETF GEOPRIV Working Group was chartered
to assess the authorization, integrity and privacy requirements that
must be met in order to transfer [location] information, or authorize
the release or representation of such information through an agent. As
more and more resources become available on the Internet, some
applications need to acquire geographic location information about
certain resources or entities. These applications include navigation,
emergency services, management of equipment in the field, and other
location-based services. But while the formatting and transfer of such
information is in some sense a straightforward process, the implications
of doing it, especially in regards to privacy and security, are
[underspecified]. Also in scope: authorization of requestors and
responders; authorization of proxies (for instance, the ability to
authorize a carrier to reveal what timezone one is in, but not what
city; an approach to the taxonomy of requestors, as well as to the
resolution or precision of information given them. More Information
have released an updated version of "Revised Civic Location Format for
PIDF-LO." The work was produced within the IETF Real-time Applications
and Infrastructure Area. RFC 4119 "A Presence-based GEOPRIV Location
Object Format" defines a location object which extends the XML-based
Presence Information Data Format (PIDF), designed for communicating
privacy-sensitive presence information and which has similar properties.
RFC 4776 "Dynamic Host Configuration Protocol (DHCPv4 and DHCPv6)
Option for Civic Addresses Configuration Information" further defines
information about the country, administrative units such as states,
provinces, and cities, as well as street addresses, postal community
names, and building information. The option allows multiple renditions
of the same address in different scripts and languages. This document
("Revised Civic Location Format for PIDF-LO") augments the GEOPRIV civic
form to include the additional civic parameters captured in RFC 4776.
The document also introduces a hierarchical structure for thoroughfare
(road) identification which is employed in some countries. New elements
are defined to allow for even more precision in specifying a civic
location. The XML schema (Section 4, 'Civic Address Schema') defined
for civic addresses allows for the addition of the "xml:lang" attribute
to all elements except "country" and "PLC", which both contain
language-neutral values. The IETF GEOPRIV Working Group was chartered
to assess the authorization, integrity and privacy requirements that
must be met in order to transfer [location] information, or authorize
the release or representation of such information through an agent. As
more and more resources become available on the Internet, some
applications need to acquire geographic location information about
certain resources or entities. These applications include navigation,
emergency services, management of equipment in the field, and other
location-based services. But while the formatting and transfer of such
information is in some sense a straightforward process, the implications
of doing it, especially in regards to privacy and security, are
[underspecified]. Also in scope: authorization of requestors and
responders; authorization of proxies (for instance, the ability to
authorize a carrier to reveal what timezone one is in, but not what
city; an approach to the taxonomy of requestors, as well as to the
resolution or precision of information given them. More Information
Thursday, October 18, 2007
ebXML Messaging Services 3.0 Approved as an OASIS Standard
OASIS announced that its members have approved the "ebXML Messaging
Services (ebMS) version 3.0: Part 1, Core Features" specification as
an OASIS Standard. ebMS 3.0 defines a Web services-based method for
the reliable, secure exchange of business information. It is the latest
addition to the ebXML family of specifications that was launched as a
global initiative by OASIS and the United Nations Centre for Trade
Facilitation and Electronic Business (UN/CEFACT) and has been adopted
worldwide. ebMS is designed to be used either with or without any of
the other ebXML standards, including ebXML Business Process Specification
Schema (BPSS) 2.0.4 and a forthcoming version of ebXML Collaboration
Protocol Profile and Agreement (CPP/A). By design, ebMS 3.0 also fully
supports composition with other SOAP-based Web services specifications.
ebMS was developed under the Royalty-Free on Limited Terms Mode of the
OASIS Intellectual Property Rights Policy. Axway, Fujitsu Computer
Systems, and NEC all verified successful use of ebMS 3.0, in accordance
with eligibility requirements for all OASIS Standards. The OASIS ebMS
Technical Committee continues work on Part 2 of ebMS 3.0 that will
provide functional extensions to the ebMS 3.0 Core. Participation in
the Technical Committee remains open to all companies, non-profit groups,
governments, academic institutions, and individuals. More Information See also the specification: Click Here
Services (ebMS) version 3.0: Part 1, Core Features" specification as
an OASIS Standard. ebMS 3.0 defines a Web services-based method for
the reliable, secure exchange of business information. It is the latest
addition to the ebXML family of specifications that was launched as a
global initiative by OASIS and the United Nations Centre for Trade
Facilitation and Electronic Business (UN/CEFACT) and has been adopted
worldwide. ebMS is designed to be used either with or without any of
the other ebXML standards, including ebXML Business Process Specification
Schema (BPSS) 2.0.4 and a forthcoming version of ebXML Collaboration
Protocol Profile and Agreement (CPP/A). By design, ebMS 3.0 also fully
supports composition with other SOAP-based Web services specifications.
ebMS was developed under the Royalty-Free on Limited Terms Mode of the
OASIS Intellectual Property Rights Policy. Axway, Fujitsu Computer
Systems, and NEC all verified successful use of ebMS 3.0, in accordance
with eligibility requirements for all OASIS Standards. The OASIS ebMS
Technical Committee continues work on Part 2 of ebMS 3.0 that will
provide functional extensions to the ebMS 3.0 Core. Participation in
the Technical Committee remains open to all companies, non-profit groups,
governments, academic institutions, and individuals. More Information See also the specification: Click Here
W3C First Public Working Draft: Language Bindings for DOM Specifications
W3C announced that members of the Web API Working Group have released
the First Public Working Draft for "Language Bindings for DOM
Specifications." The document was produced as part of the Rich Web
Clients Activity in the W3C Interaction Domain. The specification
defines an Interface Definition Language (IDL) to be used by
specifications that define a Document Object Model (DOM). How interfaces
described with this IDL correspond to constructs within ECMAScript and
Java execution environments is also detailed. It is intended to specify
in detail the IDL language used by W3C specifications to define DOM
interfaces, and to provide precise conformance requirements for
ECMAScript and Java bindings of such interfaces. It is expected that
this document acts as a guide to implementors of already-published DOM
specifications, and that newly published DOM specifications reference
this document to ensure conforming implementations of DOM interfaces
are interoperable. The interface definition language (defined in a
language independent manner) is based on the Object Management Group's
Interface Definition Language, and is syntactically a subset thereof.
The W3C Web API Working Group was chartered to develop specifications
that enable improved client-side application development on the Web.
This includes the development of programming interfaces to be made
available in a Web client. The target platforms for this Working Group
includes desktop and mobile browsers as well as many specialty,
browser-like environments that use Web client technologies. The goal
is to promote universal access both for devices and users, including
those with special needs. Additionally, the Working Group has the goal
to improve client-side application development through education,
outreach and interoperability testing. More Information
the First Public Working Draft for "Language Bindings for DOM
Specifications." The document was produced as part of the Rich Web
Clients Activity in the W3C Interaction Domain. The specification
defines an Interface Definition Language (IDL) to be used by
specifications that define a Document Object Model (DOM). How interfaces
described with this IDL correspond to constructs within ECMAScript and
Java execution environments is also detailed. It is intended to specify
in detail the IDL language used by W3C specifications to define DOM
interfaces, and to provide precise conformance requirements for
ECMAScript and Java bindings of such interfaces. It is expected that
this document acts as a guide to implementors of already-published DOM
specifications, and that newly published DOM specifications reference
this document to ensure conforming implementations of DOM interfaces
are interoperable. The interface definition language (defined in a
language independent manner) is based on the Object Management Group's
Interface Definition Language, and is syntactically a subset thereof.
The W3C Web API Working Group was chartered to develop specifications
that enable improved client-side application development on the Web.
This includes the development of programming interfaces to be made
available in a Web client. The target platforms for this Working Group
includes desktop and mobile browsers as well as many specialty,
browser-like environments that use Web client technologies. The goal
is to promote universal access both for devices and users, including
those with special needs. Additionally, the Working Group has the goal
to improve client-side application development through education,
outreach and interoperability testing. More Information
OOXML Payback Time as Global Standards Work in SC 34 "Grinds to a Halt"
As you will recall, Microsoft's OOXML submission to ISO/IEC via Ecma did
not garner enough votes to obtain approval in the first round of voting,
which closed on September 2. As you may also recall, in the run up to
that vote there were many sudden increases in membership not only in
national standards bodies, but in SC 34, the ISO/IEC JTC1 committee where
the national votes were cast. As part of the same trend, eleven countries
upgraded their membership from Observer to Participating status in SC 34,
in order to secure the greater influence over the final vote that could be
gained as "P" members. The great majority of those upgrading companies
voted to approve OOXML, but this influx was still insufficient to carry
the day. Many felt that these events damaged the integrity of the standards
process. It now appears that the damage is extending beyond reputation,
and is affecting the ability of the standards process to function at all.
Due to the fact that these newly minted "P" members have not participated
in any of the voting required by SC 34 members other than the OOXML vote,
the work of this very important committee, in the words of its chair, has
"ground to a halt." In fact, not a single vote has achieved sufficient
participation to pass - other than the OOXML vote - since the new members
arrived. More Information See also the SC 34 Secretariat Manager's Report: Click Here
not garner enough votes to obtain approval in the first round of voting,
which closed on September 2. As you may also recall, in the run up to
that vote there were many sudden increases in membership not only in
national standards bodies, but in SC 34, the ISO/IEC JTC1 committee where
the national votes were cast. As part of the same trend, eleven countries
upgraded their membership from Observer to Participating status in SC 34,
in order to secure the greater influence over the final vote that could be
gained as "P" members. The great majority of those upgrading companies
voted to approve OOXML, but this influx was still insufficient to carry
the day. Many felt that these events damaged the integrity of the standards
process. It now appears that the damage is extending beyond reputation,
and is affecting the ability of the standards process to function at all.
Due to the fact that these newly minted "P" members have not participated
in any of the voting required by SC 34 members other than the OOXML vote,
the work of this very important committee, in the words of its chair, has
"ground to a halt." In fact, not a single vote has achieved sufficient
participation to pass - other than the OOXML vote - since the new members
arrived. More Information See also the SC 34 Secretariat Manager's Report: Click Here
Call for Participation: W3C Workshop on Video on the Web
W3C issued a Call For Participation in an open "W3C Workshop on Video
on the Web", to be held December 12-13, 2007 in San Jose, California,
USA, hosted by Cisco Systems. Position papers are due November 21, 2007.
The high-level goal: Make video a first class Web citizen, including
making it easy to create, link to and from, describe, and search. Part
of making video a first class Web citizen will involve addressing issues
of accessibility, internationalization, privacy, digital rights,
performance, and device-independence. Web based video is exploding.
More and more we are seeing video on the Web used for advertising,
enterprise collaboration, entertainment, product reviews, and other
applications. As prices drop for consumer electronics, amateur and
professionals alike are creating increasingly high quality videos.
Social networks are sprouting up around Web-delivered media. "IP TV"
(Internet-based delivery of television programming) is also maturing
quickly. These rapid changes are posing challenges to the underlying
technologies and standards to support the platform-independent creation,
authoring, encoding/decoding, and description of video. W3C encourages
people interested in the topics to participate in the Workshop;
in-scope topics include strategic thinking about video on the Web,
user experience, video production, and Web architecture. W3C membership
is not required in order to participate in the Workshop; there is no
participation fee, but registration is required. Position papers are
the basis for the discussion at the Workshop. Position papers, agenda,
accepted presentations, and report will be published online.
on the Web", to be held December 12-13, 2007 in San Jose, California,
USA, hosted by Cisco Systems. Position papers are due November 21, 2007.
The high-level goal: Make video a first class Web citizen, including
making it easy to create, link to and from, describe, and search. Part
of making video a first class Web citizen will involve addressing issues
of accessibility, internationalization, privacy, digital rights,
performance, and device-independence. Web based video is exploding.
More and more we are seeing video on the Web used for advertising,
enterprise collaboration, entertainment, product reviews, and other
applications. As prices drop for consumer electronics, amateur and
professionals alike are creating increasingly high quality videos.
Social networks are sprouting up around Web-delivered media. "IP TV"
(Internet-based delivery of television programming) is also maturing
quickly. These rapid changes are posing challenges to the underlying
technologies and standards to support the platform-independent creation,
authoring, encoding/decoding, and description of video. W3C encourages
people interested in the topics to participate in the Workshop;
in-scope topics include strategic thinking about video on the Web,
user experience, video production, and Web architecture. W3C membership
is not required in order to participate in the Workshop; there is no
participation fee, but registration is required. Position papers are
the basis for the discussion at the Workshop. Position papers, agenda,
accepted presentations, and report will be published online.
SAP Open Sources Memory Analysis
SAP has announced its first contribution to the Eclipse developer
community, previously only available in its NetWeaver stack. Memory
Analyzer, which was developed under the Eclipse Public License, is
intended to make life easier for developers building applications that
require lots of memory. Developers use the Eclipse Framework to create
applications and toolkits for Java and other programming languages.
The framework includes the open source, Java-based Eclipse integrated
development environment (IDE) on which SAP's NetWeaver is based. Other
competitive Java IDEs are also based on the Eclipse IDE, including
those from IBM's Rational, BEA, and Oracle among others who may now
also potentially benefit from this SAP contribution. SAP was an original
member of the Eclipse consortium, which began in 2001, and it was a
founding member of the Eclipse Foundation in 2004, so it's not
surprising it chose Eclipse to contribute to. Memory Analyzer provides
a graphics-based snapshot of object-retention patterns and provides
developers with the information they need to optimize memory usage
without interrupting the business applications in use or crashing the
Java virtual machine hosting the application. Michael Bechauf, vice
president of standards for SAP's Global Ecosystems and Partner Group,
said SAP held off on sharing the code until it was confident the
Eclipse environment was developed enough to support the needs of
large enterprise customers running multiple, high-volume applications
at the same time. A Memory Analyzer plug-in has been available for
download from SAP's Web site at no cost for more than a year.
community, previously only available in its NetWeaver stack. Memory
Analyzer, which was developed under the Eclipse Public License, is
intended to make life easier for developers building applications that
require lots of memory. Developers use the Eclipse Framework to create
applications and toolkits for Java and other programming languages.
The framework includes the open source, Java-based Eclipse integrated
development environment (IDE) on which SAP's NetWeaver is based. Other
competitive Java IDEs are also based on the Eclipse IDE, including
those from IBM's Rational, BEA, and Oracle among others who may now
also potentially benefit from this SAP contribution. SAP was an original
member of the Eclipse consortium, which began in 2001, and it was a
founding member of the Eclipse Foundation in 2004, so it's not
surprising it chose Eclipse to contribute to. Memory Analyzer provides
a graphics-based snapshot of object-retention patterns and provides
developers with the information they need to optimize memory usage
without interrupting the business applications in use or crashing the
Java virtual machine hosting the application. Michael Bechauf, vice
president of standards for SAP's Global Ecosystems and Partner Group,
said SAP held off on sharing the code until it was confident the
Eclipse environment was developed enough to support the needs of
large enterprise customers running multiple, high-volume applications
at the same time. A Memory Analyzer plug-in has been available for
download from SAP's Web site at no cost for more than a year.
HTTP Response Signing Abstract Model
I've argued that there's a need for an HTTP-specific mechanism for
signing HTTP responses. So let's try and design one. Usually at this
point, I would start coding, but with security-related stuff, I think
it's better to have more discussion up front... Let's suppose that the
mechanism will take the form of a new Signature header. Here is my
current thinking as to the steps involved in constructing a Signature
header: [eleven steps in the abstract design]... (1) What kinds of
security token can be used? At least X.509 certificates should be
supported. But there should be the potential to support other kinds
of token. (2) How are security tokens identified? It depends on the
type. For X.509, it would make sense to have a URI that allowed the
client to fetch the certificate. It would also be desirable to have
an identifier that uniquely identifies the certificate, so that the
client can tell whether it already has the certificate without having
to go fetch it. As far as I can tell, in the X.509 case, people mostly
use the SHA-1 hash of the DER encoding of the certificate for this.
(3) How does the server know what kind of signature (if any) the
client wants? The client can provide a Want-Signature header in the
request... (4) Can there be multiple signatures? Yes. In the normal
HTTP style, the Signature header should support a comma-separated
list of signatures. The order of this list would be significant.
There should be a way for each signature in the list to specify which
of the previous signatures in the list are included in what it signs.
There's a semantic difference between two independent signatures, and
a later signature endorsing an earlier signature... (5) How about
streaming? Tricky. The fundamental problem is that HTTP 1.1 isn't
very good at enabling the interleaved delivery of data and metadata... More Information See also the followup: Click Here
signing HTTP responses. So let's try and design one. Usually at this
point, I would start coding, but with security-related stuff, I think
it's better to have more discussion up front... Let's suppose that the
mechanism will take the form of a new Signature header. Here is my
current thinking as to the steps involved in constructing a Signature
header: [eleven steps in the abstract design]... (1) What kinds of
security token can be used? At least X.509 certificates should be
supported. But there should be the potential to support other kinds
of token. (2) How are security tokens identified? It depends on the
type. For X.509, it would make sense to have a URI that allowed the
client to fetch the certificate. It would also be desirable to have
an identifier that uniquely identifies the certificate, so that the
client can tell whether it already has the certificate without having
to go fetch it. As far as I can tell, in the X.509 case, people mostly
use the SHA-1 hash of the DER encoding of the certificate for this.
(3) How does the server know what kind of signature (if any) the
client wants? The client can provide a Want-Signature header in the
request... (4) Can there be multiple signatures? Yes. In the normal
HTTP style, the Signature header should support a comma-separated
list of signatures. The order of this list would be significant.
There should be a way for each signature in the list to specify which
of the previous signatures in the list are included in what it signs.
There's a semantic difference between two independent signatures, and
a later signature endorsing an earlier signature... (5) How about
streaming? Tricky. The fundamental problem is that HTTP 1.1 isn't
very good at enabling the interleaved delivery of data and metadata... More Information See also the followup: Click Here
Exploring Claims-Based Identity
This column introduces the new identity model in the Microsoft .NET
Framework 3.0... Trust and Federated Identity: WCF and other
communication frameworks use cryptography to ensure that the sender of
a security token is indeed the subject and that the claims in the token
were signed by the issuer named in the token. But all of this fancy
plumbing doesn't have any idea how much you trust the issuer. If you
don't trust him, you're not going to trust the claims he makes about
his subjects! That's why the issuer is always identified when you
receive a claim set, and it's the first thing you should look at when
processing a claim set. It's easy to write code that accepts tokens
from a single trusted issuer. Just make sure the claim set you received
was issued by the one authority you trust, and then you can use those
claims to make security decisions. You've essentially delegated
responsibility to the STS for doing the heavy lifting such as mapping
users onto roles and dealing with different types of security tokens.
Now imagine you wanted to take this one step further. Instead of only
accepting Windows credentials and X.509 certificates, what if your STS
also accepted signed SAML tokens issued by an STS at a trusted partner?
This leads to the realm of federated identity, which is very powerful.
Instead of having to worry about managing user accounts for external
users from partner companies, you can instead accept signed statements
from those partners in the form of SAML tokens... Federated identity
ultimately boils down to claims transformation, if you think about it.
The partner's STS makes the client's life easy by accepting as input
whatever credential is most natural for her, given her operating system
and platform. For example, if the client is running Windows, the STS
could use Kerberos to automatically authenticate her and issue a SAML
token. Another partner company might run a completely different OS that
uses other strong authentication protocols. But the STS at that company
would use those protocols to seamlessly authenticate the user and issue
a SAML token. Meanwhile, the user enjoys the benefits of single-sign on,
even when using applications like yours from federated partner companies.
Framework 3.0... Trust and Federated Identity: WCF and other
communication frameworks use cryptography to ensure that the sender of
a security token is indeed the subject and that the claims in the token
were signed by the issuer named in the token. But all of this fancy
plumbing doesn't have any idea how much you trust the issuer. If you
don't trust him, you're not going to trust the claims he makes about
his subjects! That's why the issuer is always identified when you
receive a claim set, and it's the first thing you should look at when
processing a claim set. It's easy to write code that accepts tokens
from a single trusted issuer. Just make sure the claim set you received
was issued by the one authority you trust, and then you can use those
claims to make security decisions. You've essentially delegated
responsibility to the STS for doing the heavy lifting such as mapping
users onto roles and dealing with different types of security tokens.
Now imagine you wanted to take this one step further. Instead of only
accepting Windows credentials and X.509 certificates, what if your STS
also accepted signed SAML tokens issued by an STS at a trusted partner?
This leads to the realm of federated identity, which is very powerful.
Instead of having to worry about managing user accounts for external
users from partner companies, you can instead accept signed statements
from those partners in the form of SAML tokens... Federated identity
ultimately boils down to claims transformation, if you think about it.
The partner's STS makes the client's life easy by accepting as input
whatever credential is most natural for her, given her operating system
and platform. For example, if the client is running Windows, the STS
could use Kerberos to automatically authenticate her and issue a SAML
token. Another partner company might run a completely different OS that
uses other strong authentication protocols. But the STS at that company
would use those protocols to seamlessly authenticate the user and issue
a SAML token. Meanwhile, the user enjoys the benefits of single-sign on,
even when using applications like yours from federated partner companies.
Creating Interactive Forms with GWT and XForms
This is Part 4 in a four-part series demonstrating how to use the
Google Web Toolkit (GWT) and XForms together to create a dynamic Web
application. Part 1 looks at the JavaScript underpinnings of each
technology. Part 2 shows how to use those JavaScript underpinnings to
start mixing the two technologies together to build the rock star
application. Part 3 refactors the application to use XForms and GWT
together. In this concluding part, we continue to refactor and improve
the rock star application. The article uses GWT version 1.4 and the
Mozilla XForms plugin 0.8. The Mozilla XForms plugin works with any
Mozilla-based Web browser, such as Firefox and Seamonkey. GWT requires
knowledge of Java technology, and Web technologies such as HTML and
CSS. This article makes heavy use of JavaScript as well. XForms makes
heavy use of the Model-View-Control paradigm, so familiarity with that
is helpful. In the article you see how to add interactive forms to
your application. These forms can use GWT to create XForms controls
that can then invoke GWT Ajax services. The response from these
services can be handled through GWT, and can in turn use JSNI to alter
your XForms model data and update your XForms UI controls. This tight
integration between GWT and XForms allows XForms to take advantage
of key features of GWT. You also see that you can localize your XForms
using GWT's localization facilities. Finally, you see one of the
lesser-known, but powerful, features of GWT: Java-style sorting.
Features like this, as well features like localization and GWT's new
image bundling, make it so beneficial to use GWT not only for new
projects, but also to enhance other projects and technologies.
More Informaton
Google Web Toolkit (GWT) and XForms together to create a dynamic Web
application. Part 1 looks at the JavaScript underpinnings of each
technology. Part 2 shows how to use those JavaScript underpinnings to
start mixing the two technologies together to build the rock star
application. Part 3 refactors the application to use XForms and GWT
together. In this concluding part, we continue to refactor and improve
the rock star application. The article uses GWT version 1.4 and the
Mozilla XForms plugin 0.8. The Mozilla XForms plugin works with any
Mozilla-based Web browser, such as Firefox and Seamonkey. GWT requires
knowledge of Java technology, and Web technologies such as HTML and
CSS. This article makes heavy use of JavaScript as well. XForms makes
heavy use of the Model-View-Control paradigm, so familiarity with that
is helpful. In the article you see how to add interactive forms to
your application. These forms can use GWT to create XForms controls
that can then invoke GWT Ajax services. The response from these
services can be handled through GWT, and can in turn use JSNI to alter
your XForms model data and update your XForms UI controls. This tight
integration between GWT and XForms allows XForms to take advantage
of key features of GWT. You also see that you can localize your XForms
using GWT's localization facilities. Finally, you see one of the
lesser-known, but powerful, features of GWT: Java-style sorting.
Features like this, as well features like localization and GWT's new
image bundling, make it so beneficial to use GWT not only for new
projects, but also to enhance other projects and technologies.
More Informaton
Wednesday, October 17, 2007
IBM Uses RFID to Track Conference Attendees
At its "Information on Demand" conference, IBM is deploying RFID
technology on name tags worn by attendees that automatically tracks
their session and meal attendance. This is the first time that IBM
has used RFID technology at this conference, and the company is not
making a secret of it. There are signs at the registration desk offering
attendees the option of getting a name tag without the chip. Of the
6,500 people here, approximately 2% didn't want a name tag with an
RFID chip in it. From a simple unique identifier on the chip, begins
what could be a long tail of data analysis. The chip's 24-character
identifier includes the name, title and company of the person wearing
it. There is no other personal information on the chip. As a person
walks through the door leading into a conference session, an RFID
receiver logs the chip's data. The system, by AllianceTech in Austin
is networked and the data is received in real time by its on-site
systems at the conference. The data is organized in a DB2 database.
The RFID system, coupled with what the conference knows about the
person wearing the name badge, is providing lots of raw data. Mary
Ann Alberry, IBM's conference manager, said the data will be used
to help organizers with future conference planning, such as optimizing
sessions around interests and demands of conference attendees. It
will also let organizers know the number of people who have received
meals so they can plan meals in such a way that food is available
at the right time. Because RFID keeps count of people getting meals
at the conference, it creates a means to audit and help control
conference costs. The real-time aspects of the system help with
day-to-day conference management. If a room gets filled to capacity,
a decision can be made to repeat the session. If a person needs to
be reached in an emergency, he can also be tracked down. Many
conferences already track who enters sessions by scanning bar codes
on name badges, but Art Borrego, CEO of AllianceTech, said RFID
allows people to enter a room without delay. He said conference goers
have accepted it in much the same way many use RFID to avoid having
to stop on a highway to pay a toll. More Information
technology on name tags worn by attendees that automatically tracks
their session and meal attendance. This is the first time that IBM
has used RFID technology at this conference, and the company is not
making a secret of it. There are signs at the registration desk offering
attendees the option of getting a name tag without the chip. Of the
6,500 people here, approximately 2% didn't want a name tag with an
RFID chip in it. From a simple unique identifier on the chip, begins
what could be a long tail of data analysis. The chip's 24-character
identifier includes the name, title and company of the person wearing
it. There is no other personal information on the chip. As a person
walks through the door leading into a conference session, an RFID
receiver logs the chip's data. The system, by AllianceTech in Austin
is networked and the data is received in real time by its on-site
systems at the conference. The data is organized in a DB2 database.
The RFID system, coupled with what the conference knows about the
person wearing the name badge, is providing lots of raw data. Mary
Ann Alberry, IBM's conference manager, said the data will be used
to help organizers with future conference planning, such as optimizing
sessions around interests and demands of conference attendees. It
will also let organizers know the number of people who have received
meals so they can plan meals in such a way that food is available
at the right time. Because RFID keeps count of people getting meals
at the conference, it creates a means to audit and help control
conference costs. The real-time aspects of the system help with
day-to-day conference management. If a room gets filled to capacity,
a decision can be made to repeat the session. If a person needs to
be reached in an emergency, he can also be tracked down. Many
conferences already track who enters sessions by scanning bar codes
on name badges, but Art Borrego, CEO of AllianceTech, said RFID
allows people to enter a room without delay. He said conference goers
have accepted it in much the same way many use RFID to avoid having
to stop on a highway to pay a toll. More Information
Augmented BNF for Syntax Specifications: ABNF
The Internet Engineering Steering Group (IESG) announced the approval
of the "Augmented BNF for Syntax Specifications: ABNF" specification as
a Full IETF Standard. ABNF is used for formal language description in
IETF RFCs, W3C specifications, and elsewhere. The document was reviewed
by Bill Fenner, Frank Ellerman, Julian Reschke, Steven Legg, Alexey
Melnikov. An implementation report is available. Abstract: "Internet
technical specifications often need to define a formal syntax. Over
the years, a modified version of Backus-Naur Form (BNF), called Augmented
BNF (ABNF), has been popular among many Internet specifications. The
current specification documents ABNF. It balances compactness and
simplicity, with reasonable representational power. The differences
between standard BNF and ABNF involve naming rules, repetition,
alternatives, order-independence, and value ranges. This specification
also supplies additional rule definitions and encoding for a core
lexical analyzer of the type common to several Internet specifications. More Information
See also the implementation report: Click Here
of the "Augmented BNF for Syntax Specifications: ABNF" specification as
a Full IETF Standard. ABNF is used for formal language description in
IETF RFCs, W3C specifications, and elsewhere. The document was reviewed
by Bill Fenner, Frank Ellerman, Julian Reschke, Steven Legg, Alexey
Melnikov. An implementation report is available. Abstract: "Internet
technical specifications often need to define a formal syntax. Over
the years, a modified version of Backus-Naur Form (BNF), called Augmented
BNF (ABNF), has been popular among many Internet specifications. The
current specification documents ABNF. It balances compactness and
simplicity, with reasonable representational power. The differences
between standard BNF and ABNF involve naming rules, repetition,
alternatives, order-independence, and value ranges. This specification
also supplies additional rule definitions and encoding for a core
lexical analyzer of the type common to several Internet specifications. More Information
See also the implementation report: Click Here
Open Grid Forum Maintains Focus on the 2010 Goal
Grid and grid-like technologies -- including virtualization, automation,
service oriented architecture (SOA) and distributed computing -- are
all part of the IT infrastructure solution being used by leading
organizations around the world to enable this knowledge-based, global
economy. The Open Grid Forum is a standards development organization
dedicated to developing open standards for grid interoperability. OGF
serves as a global forum where the grid community gathers to identify
common requirements, develop best practices and share use cases. As a
community-initiated not-for-profit organization, OGF involves more than
300 organizations from 50 countries. OGF has extensive engagement with
national and regional grid initiatives in 25 countries, including
TeraGrid and Open Science Grid in the U.S., EGEE in Europe, NAREGI in
Japan, APAC in Australia, and UK eScience in the UK. Leading hardware,
software, and solutions vendors such as Hewlett-Packard, IBM, Intel,
Microsoft, Oracle, and Platform Computing are also actively engaged.
OGF aims to have scientific and commercial organizations build
operational grids using OGF-defined, standards-based components by
2010. This work is well underway, however much more effort is needed
to develop and mature specifications. A June 2007 OGF roadmap document
('Technical Strategy for the Open Grid Forum 2007-2010') identifies
six high priority capabilities including grid security, application
provisioning, job submission, file movement, data provisioning and
grid application programming interfaces (APIs). OGF recognizes that
it takes cooperation and collaboration across the entire distributed
computing community to effectively build open standards. For instance,
many OGF standards are based on the foundational protocols, information,
and web services standards developed by other standards development
organizations, including W3C, IETF, SNIA, DMTF, and OASIS. OGF
proactively engages in liaison activities with these organizations and
they, in turn, look to OGF as uniquely chartered to define
interoperable grid architectures, specifications and community practices. More Information
service oriented architecture (SOA) and distributed computing -- are
all part of the IT infrastructure solution being used by leading
organizations around the world to enable this knowledge-based, global
economy. The Open Grid Forum is a standards development organization
dedicated to developing open standards for grid interoperability. OGF
serves as a global forum where the grid community gathers to identify
common requirements, develop best practices and share use cases. As a
community-initiated not-for-profit organization, OGF involves more than
300 organizations from 50 countries. OGF has extensive engagement with
national and regional grid initiatives in 25 countries, including
TeraGrid and Open Science Grid in the U.S., EGEE in Europe, NAREGI in
Japan, APAC in Australia, and UK eScience in the UK. Leading hardware,
software, and solutions vendors such as Hewlett-Packard, IBM, Intel,
Microsoft, Oracle, and Platform Computing are also actively engaged.
OGF aims to have scientific and commercial organizations build
operational grids using OGF-defined, standards-based components by
2010. This work is well underway, however much more effort is needed
to develop and mature specifications. A June 2007 OGF roadmap document
('Technical Strategy for the Open Grid Forum 2007-2010') identifies
six high priority capabilities including grid security, application
provisioning, job submission, file movement, data provisioning and
grid application programming interfaces (APIs). OGF recognizes that
it takes cooperation and collaboration across the entire distributed
computing community to effectively build open standards. For instance,
many OGF standards are based on the foundational protocols, information,
and web services standards developed by other standards development
organizations, including W3C, IETF, SNIA, DMTF, and OASIS. OGF
proactively engages in liaison activities with these organizations and
they, in turn, look to OGF as uniquely chartered to define
interoperable grid architectures, specifications and community practices. More Information
Widgets 1.0: Updated W3C Working Draft
Members of W3C's Web Application Formats Working Group have released
an updated Working Draft for the "Widgets 1.0" specification. The
document was produced as part of the Rich Web Clients Activity in the
W3C Interaction Domain. Widgets are written for users to run in their
Web browser environment. Specifically, widgets "are a class of
client-side web application for displaying and/or updating local or
remote data, packaged in a way to allow a single download and
installation on a client machine or device. Examples include clocks,
stock tickers, news casters, games and weather forecasters. The
Widgets 1.0 specification, when combined with other dependent
specifications, defines a software solution for Widgets, including:
(1) A packaging format defined in terms of the Zip File Format
Specification, to provide authors with an interoperable way to
encapsulate and distribute widgets. (2) An XML-based configuration
format and processing model, to allow authors to declare metadata
about a widget. (3) A model that allows a user-agent to automatically
start a widget. (4) An HTTP-based model for version control, to allow
user agents to automatically keep widgets up-to-date. (5) A set of
ECMAScript implementable DOM APIs and events, including an API to
allow instantiated widgets to communicate with one another. (6) A
model that leverages the XML-Signature Syntax and Processing
Specification to allow a widget to be digitally signed. (7) A security
model to reduce privacy risks and reduce the potential for damage to
an end-users machine or device. (8) A means for web browsers to
automatically "discover" widgets from within a HTML document. (9)
Accessibility requirements for user agents to ensure that perceptual
and interactive parts of widgets are accessible. More Information See also the supporting discussion list: Click Here
an updated Working Draft for the "Widgets 1.0" specification. The
document was produced as part of the Rich Web Clients Activity in the
W3C Interaction Domain. Widgets are written for users to run in their
Web browser environment. Specifically, widgets "are a class of
client-side web application for displaying and/or updating local or
remote data, packaged in a way to allow a single download and
installation on a client machine or device. Examples include clocks,
stock tickers, news casters, games and weather forecasters. The
Widgets 1.0 specification, when combined with other dependent
specifications, defines a software solution for Widgets, including:
(1) A packaging format defined in terms of the Zip File Format
Specification, to provide authors with an interoperable way to
encapsulate and distribute widgets. (2) An XML-based configuration
format and processing model, to allow authors to declare metadata
about a widget. (3) A model that allows a user-agent to automatically
start a widget. (4) An HTTP-based model for version control, to allow
user agents to automatically keep widgets up-to-date. (5) A set of
ECMAScript implementable DOM APIs and events, including an API to
allow instantiated widgets to communicate with one another. (6) A
model that leverages the XML-Signature Syntax and Processing
Specification to allow a widget to be digitally signed. (7) A security
model to reduce privacy risks and reduce the potential for damage to
an end-users machine or device. (8) A means for web browsers to
automatically "discover" widgets from within a HTML document. (9)
Accessibility requirements for user agents to ensure that perceptual
and interactive parts of widgets are accessible. More Information See also the supporting discussion list: Click Here
IBM DB2 Viper 2 Improves Transactional XML Data Performance
IBM has introduced the DB2 9.5 'Viper 2' data server, featuring new
data automation and performance enhancements that will dramatically
improve the way customers store, manage and access business information.
Enhancements include: automatic deep compression to save storage
capacity and costs as a customer's database grows; autonomic memory
management to reduce administrative burdens on database administrators;
and integrated automated failover and backup to simplify system set-up
and minimize downtime. Many DB2 customers have leveraged the unique
XML capabilities provided by this hybrid data server to transform
their use of XML from a convenient way of representing data to a true
business asset. DB2 9.5 extends the extremely efficient management and
querying capabilities of pureXML with the performance and efficiency
required to leverage XML in a large scale transaction environment. To
accomplish this, we first streamlined the management of small XML
documents to minimize I/O and conserve storage space. In fact, pureXML
can store these XML documents in about half the space required for
restoring them in flat files or LOBs. The result is additional
performance gains as much as 2x for a general transaction processing
workload and as much as 5x for bulk inserts w/shema validation. DB2 9.5
is also the first major database to support the XQuery update standard.
With this comes the ability for sub-document updates that can
signifcantly improve performance when changing only a piece of the
XML document. More Information See also the product description: Click Here
data automation and performance enhancements that will dramatically
improve the way customers store, manage and access business information.
Enhancements include: automatic deep compression to save storage
capacity and costs as a customer's database grows; autonomic memory
management to reduce administrative burdens on database administrators;
and integrated automated failover and backup to simplify system set-up
and minimize downtime. Many DB2 customers have leveraged the unique
XML capabilities provided by this hybrid data server to transform
their use of XML from a convenient way of representing data to a true
business asset. DB2 9.5 extends the extremely efficient management and
querying capabilities of pureXML with the performance and efficiency
required to leverage XML in a large scale transaction environment. To
accomplish this, we first streamlined the management of small XML
documents to minimize I/O and conserve storage space. In fact, pureXML
can store these XML documents in about half the space required for
restoring them in flat files or LOBs. The result is additional
performance gains as much as 2x for a general transaction processing
workload and as much as 5x for bulk inserts w/shema validation. DB2 9.5
is also the first major database to support the XQuery update standard.
With this comes the ability for sub-document updates that can
signifcantly improve performance when changing only a piece of the
XML document. More Information See also the product description: Click Here
OSI Approves Two Microsoft Shared Source Licenses
The board of the Open Source Initiative (OSI) has approved two Microsoft
licenses that allow proprietary source code to be shared, a move that
is likely to inspire protest and spur controversy for die-hard open
source proponents. The Microsoft Public License (MPL) and the Microsoft
Reciprocal License (MRL), two of Microsoft's "shared source" licenses,
are now viable OSI licenses for distributing open source code alongside
more widely used community licenses such as the GNU General Public
License and the Mozilla Public License. Microsoft submitted licenses
from its Shared Source Initiative to the OSI in July [2007], an
announcement made at the O'Reilly Open Source Convention. The MPL and
MRL are two of three licenses that Microsoft offers in its Shared
Source Initiative, which it has offered for about five years as a way
to share source code without having to work with open source
organizations or companies. The other is the Microsoft Reference
License, which is the most restrictive of the three and was not
submitted for approval. The MPL is the least restrictive of the Shared
Source licenses, allowing licensees to view, modify, and redistribute
the source code for either commercial or noncommercial purposes. The
license also allows licensees to alter the source code they share with
others as well as to charge a licensing fee for their work if they
choose. The MRL, which the company recommends for collaborative
development projects, carries specific requirements if licensees
combine their original code with MRL-licensed code. It does, however,
allow for noncommercial and commercial modification and redistribution
of licensed software. Red Hat executive Michael Tiemann, who also
serves as president of the OSI, said Tuesday that while some in the
community balked at the OSI accepting licenses from a company that
historically has not been open source friendly, in the end, the
licenses spoke for themselves. More Information
licenses that allow proprietary source code to be shared, a move that
is likely to inspire protest and spur controversy for die-hard open
source proponents. The Microsoft Public License (MPL) and the Microsoft
Reciprocal License (MRL), two of Microsoft's "shared source" licenses,
are now viable OSI licenses for distributing open source code alongside
more widely used community licenses such as the GNU General Public
License and the Mozilla Public License. Microsoft submitted licenses
from its Shared Source Initiative to the OSI in July [2007], an
announcement made at the O'Reilly Open Source Convention. The MPL and
MRL are two of three licenses that Microsoft offers in its Shared
Source Initiative, which it has offered for about five years as a way
to share source code without having to work with open source
organizations or companies. The other is the Microsoft Reference
License, which is the most restrictive of the three and was not
submitted for approval. The MPL is the least restrictive of the Shared
Source licenses, allowing licensees to view, modify, and redistribute
the source code for either commercial or noncommercial purposes. The
license also allows licensees to alter the source code they share with
others as well as to charge a licensing fee for their work if they
choose. The MRL, which the company recommends for collaborative
development projects, carries specific requirements if licensees
combine their original code with MRL-licensed code. It does, however,
allow for noncommercial and commercial modification and redistribution
of licensed software. Red Hat executive Michael Tiemann, who also
serves as president of the OSI, said Tuesday that while some in the
community balked at the OSI accepting licenses from a company that
historically has not been open source friendly, in the end, the
licenses spoke for themselves. More Information
Latest Revisions of SAML-lSSO and SAML OpenID Profile
I've updated the SAML-lSSO and SAML OpenID Profile specs just to bring
them up-to-date with the latest revisions of various SAML and OpenID
specs and to fix minor editorial issues. The SAML-lSSO spec is
presently not a current IETF Internet-Draft -- it's prior version
expired a few months ago. We're thinking about whether we want to
pursue that specification officially or not. The issue with it being
that in implementing it, one can optionally turn security completely
off -- which is a 'feature' various folks advocating for so-called
'open Internet' identity management desire. But SDOs such as IETF,
OASIS, W3C, Liberty Alliance, etc all would look askance at blessing
such a spec. In fact the IETF definitely would not allow it to go
forward in that they have an explicit policy against promulgating
insecure protocols. "SAMLv2 Lightweight Web Browser SSO Profile"
specifies a SAMLv2 lightweight Web Browser Single Sign-On Profile.
This profile is modeled on the OASIS SAMLv2 Web Browser SSO profile,
adding various constraints, and using a new lighterweight SAMLv2
HTTP POST binding offering an optional signature technique that is
more simple-to-implement than the also optional XML Digital Signature
approach. More Information See also SAML references: Click Here
them up-to-date with the latest revisions of various SAML and OpenID
specs and to fix minor editorial issues. The SAML-lSSO spec is
presently not a current IETF Internet-Draft -- it's prior version
expired a few months ago. We're thinking about whether we want to
pursue that specification officially or not. The issue with it being
that in implementing it, one can optionally turn security completely
off -- which is a 'feature' various folks advocating for so-called
'open Internet' identity management desire. But SDOs such as IETF,
OASIS, W3C, Liberty Alliance, etc all would look askance at blessing
such a spec. In fact the IETF definitely would not allow it to go
forward in that they have an explicit policy against promulgating
insecure protocols. "SAMLv2 Lightweight Web Browser SSO Profile"
specifies a SAMLv2 lightweight Web Browser Single Sign-On Profile.
This profile is modeled on the OASIS SAMLv2 Web Browser SSO profile,
adding various constraints, and using a new lighterweight SAMLv2
HTTP POST binding offering an optional signature technique that is
more simple-to-implement than the also optional XML Digital Signature
approach. More Information See also SAML references: Click Here
OASIS Ballots SAML Metadata Profile and Extension Specifications
Two specifications related to the OASIS Standard "Metadata for the
OASIS Security Assertion Markup Language (SAML) V2.0" are being balloted
for approval. (1) The "Metadata Profile for the OASIS Security
Assertion Markup Language (SAML) V1.x" specification provides metadata
support for SAML V1.x by profiling the SAML V2.0 metadata specification
for use with the SAML V1.x-based profiles and exchanges. SAML profiles
generally require agreements between system entities regarding
identifiers, binding/profile support and endpoints, certificates and
keys, etc. A metadata specification is useful for describing this
information in a standardized way. However, SAML V1.0 and V1.1 did not
include such a metadata profile and this specification is intended to
address that shortcoming. This specification was edited by Greg
Whitehead (Hewlett-Packard Company) and Scott Cantor (Internet2).
(2) The "Metadata Extension for SAML V2.0 and V1.x Query Requesters"
specification defines an extension to the SAML V2.0 metadata
specification. The extension defines a set of role descriptor types
that describe a standalone SAML query requester for each of the three
predefined query types. The profile addresses both SAML V1.x and
SAML V2.0 query requesters. This document was edited for the OASIS
Security Services (SAML) TC by Tom Scavo (NCSA) and Scott Cantor
(Internet2). More Information
OASIS Security Assertion Markup Language (SAML) V2.0" are being balloted
for approval. (1) The "Metadata Profile for the OASIS Security
Assertion Markup Language (SAML) V1.x" specification provides metadata
support for SAML V1.x by profiling the SAML V2.0 metadata specification
for use with the SAML V1.x-based profiles and exchanges. SAML profiles
generally require agreements between system entities regarding
identifiers, binding/profile support and endpoints, certificates and
keys, etc. A metadata specification is useful for describing this
information in a standardized way. However, SAML V1.0 and V1.1 did not
include such a metadata profile and this specification is intended to
address that shortcoming. This specification was edited by Greg
Whitehead (Hewlett-Packard Company) and Scott Cantor (Internet2).
(2) The "Metadata Extension for SAML V2.0 and V1.x Query Requesters"
specification defines an extension to the SAML V2.0 metadata
specification. The extension defines a set of role descriptor types
that describe a standalone SAML query requester for each of the three
predefined query types. The profile addresses both SAML V1.x and
SAML V2.0 query requesters. This document was edited for the OASIS
Security Services (SAML) TC by Tom Scavo (NCSA) and Scott Cantor
(Internet2). More Information
Tuesday, October 16, 2007
jQuery and XML
Whether you're an admirer of AJAX, or one who can't stand all the hype,
if you're a web developer you must admit that it's proven very useful
in driving explosive competition among JavaScript utility libraries.
And the embarrassment of riches keeps on growing. jQuery "is a fast,
concise, JavaScript Library that simplifies how you traverse HTML
documents, handle events, perform animations, and add Ajax interactions
to your web pages." jQuery emerged a couple of years ago to great
acclaim for its performance, elegant design, and handy features, and
now it's one of the most popular JavaScript frameworks. jQuery offers
a lot of facilities, but it's best known for offering a cross-browser
model for accessing and manipulating web page elements that means you
don't have to deal with the endless pain of DOM. jQuery can be used
for XML processing on the Web as well as HTML processing, and in this
article I show some examples of this use. The most cross-platform way
to process XML these days is by using XMLHttpRequest. We can hope
overall browser support of XML improves, but I start by showing how
you can use jQuery to load and manipulate XML from an HTML web page...
jQuery has no selectors that understand XML namespaces. Even prior to
version 1.2 when there was an option for XPath-like selectors, there
was no namespaces support. This doesn't mean you can't use jQuery to
process XML with namespaces. It just means you may have to sometimes
take the escape hatch to DOM... JavaScript libraries are a matter of
taste, and we can just thank our stars there is one for just about any
taste. I came to enjoy jQuery because it made processing mainstream
web content so much easier, and when I tried to make it do cool things
with XML, I was pleased with how many things did just work, though
some of the blind alleys were a bit unexpected. More Information See also the jQuery web site: Click Here
if you're a web developer you must admit that it's proven very useful
in driving explosive competition among JavaScript utility libraries.
And the embarrassment of riches keeps on growing. jQuery "is a fast,
concise, JavaScript Library that simplifies how you traverse HTML
documents, handle events, perform animations, and add Ajax interactions
to your web pages." jQuery emerged a couple of years ago to great
acclaim for its performance, elegant design, and handy features, and
now it's one of the most popular JavaScript frameworks. jQuery offers
a lot of facilities, but it's best known for offering a cross-browser
model for accessing and manipulating web page elements that means you
don't have to deal with the endless pain of DOM. jQuery can be used
for XML processing on the Web as well as HTML processing, and in this
article I show some examples of this use. The most cross-platform way
to process XML these days is by using XMLHttpRequest. We can hope
overall browser support of XML improves, but I start by showing how
you can use jQuery to load and manipulate XML from an HTML web page...
jQuery has no selectors that understand XML namespaces. Even prior to
version 1.2 when there was an option for XPath-like selectors, there
was no namespaces support. This doesn't mean you can't use jQuery to
process XML with namespaces. It just means you may have to sometimes
take the escape hatch to DOM... JavaScript libraries are a matter of
taste, and we can just thank our stars there is one for just about any
taste. I came to enjoy jQuery because it made processing mainstream
web content so much easier, and when I tried to make it do cool things
with XML, I was pleased with how many things did just work, though
some of the blind alleys were a bit unexpected. More Information See also the jQuery web site: Click Here
Eclipse Unwraps RAP
The Eclipse Foundation is rolling out Eclipse Rich AJAX Platform 1.0,
a freely downloadable AJAX server for creating and deploying rich
Internet applications. RAP 1.0 is the first Asynchronous JavaScript
and XML platform that allows developers to create RIAs using the
Eclipse component model, based on the Open Services Gateway Initiative
standard. OSGi is a service-oriented, component-based environment
that promotes the interoperability of applications and services,
Eclipse officials said. Organizations using RAP are now able to
create AJAX applications and RIAs that are component-based and
integrate into existing enterprise systems. Innoopract, a longtime
Eclipse member, is the leader of the Eclipse AJAX Toolkit Framework.
From the announcement: "RAP 1.0 includes features well-suited for
enterprises that are building a large number of new applications
based on Ajax and RIA technologies. These features include: (1) The
ability to create and deploy RIA or RCP applications from the same
Java code base, allowing organizations the flexibility to create
browser-based RIA application or desktop-based rich client
applications. (2) Support for creating Ajax applications based on
the OSGi component model. (3) Java development tools that tightly
integrate with the Eclipse platform and allow developers to quickly
develop, test, debug and deploy RIA applications. (4) A complete set
of frameworks for creating Ajax applications that support scalable
user interfaces, complex widgets, databinding and loose coupling for
UI elements." More Information See also the announcement: Click Here
a freely downloadable AJAX server for creating and deploying rich
Internet applications. RAP 1.0 is the first Asynchronous JavaScript
and XML platform that allows developers to create RIAs using the
Eclipse component model, based on the Open Services Gateway Initiative
standard. OSGi is a service-oriented, component-based environment
that promotes the interoperability of applications and services,
Eclipse officials said. Organizations using RAP are now able to
create AJAX applications and RIAs that are component-based and
integrate into existing enterprise systems. Innoopract, a longtime
Eclipse member, is the leader of the Eclipse AJAX Toolkit Framework.
From the announcement: "RAP 1.0 includes features well-suited for
enterprises that are building a large number of new applications
based on Ajax and RIA technologies. These features include: (1) The
ability to create and deploy RIA or RCP applications from the same
Java code base, allowing organizations the flexibility to create
browser-based RIA application or desktop-based rich client
applications. (2) Support for creating Ajax applications based on
the OSGi component model. (3) Java development tools that tightly
integrate with the Eclipse platform and allow developers to quickly
develop, test, debug and deploy RIA applications. (4) A complete set
of frameworks for creating Ajax applications that support scalable
user interfaces, complex widgets, databinding and loose coupling for
UI elements." More Information See also the announcement: Click Here
New Draft of ISO DSDL Part-8 (DSRL) Out for Review
Martin Bryan has released the latest FCD draft (second final committee
draft) for ISO DSRL. He has an open source implementation available
too: like some of the other parts of ISO DSDL (Schematron and DTLL)
it is designed to be implementable on top of XSLT (XSLT2 in this case)
however of course it can be implemented in Java or .NET or C++ directly
too: DSRL is certainly suitable for building into a validator as a
pre-processor, in a way a little analogous to OASIS XML Catalogs. DSRL
is a real missing piece in the puzzle: it provides a simple tool for
remapping names in documents. This allows a more declarative approach
than just using XSLT, and makes the task of mapping suitable for
non-programmers. It fits into the schema ecosystem because it lets you
rename the names in your document to suit that of a standard schema.
It is only about 18 pages long, including examples, and easy to read.
We are used to saying that 'syntax is easy; semantics is hard'. But
even syntax is not easy without straightforward tools. Just last week
I was working with an example of a company that was considering using
an standard external schema, but wanted to use its own terms for things
where they existed. Exactly a job for DSRL! DSRL allows these kinds of
mapping, and I think that like ISO Schematron and ISO NVRL it will
progressively become part of the schema environment for standards,
especially outside the English-speaking world, and especially because
XML is the structured format 'for the rest of us'. Even the most
tragic XML Schema devotee realizes that there needs to be some limits
to XSDs scope, and DRSL (and Schematron and NVRL) have a good fit even
with XSD. (Of course, we designed them around RELAX NG, but standards
are pragmatics not religions.) DSRL allows the following remappings --
organized into a series of maps that typically relate to an output
namespace: Element names (in an Xpath context); Attribute names; Element
simple values; Attribute values; Default values for elements or attributes
(including the subelement after which the content may go, in the case
of an element: mixed content is not ignored!); Processing instruction
targets; Entity names (e.g. for undeclared entity references). In
addition, a new XML-based syntax for defining entities is given. Note:
Document Semantics Renaming Language (DSRL) is Part 8 in the 10-part
Document Schema Definition Languages (DSDL) ISO/IEC specification. More Information See also DSDL Part 8 references: Click Here
draft) for ISO DSRL. He has an open source implementation available
too: like some of the other parts of ISO DSDL (Schematron and DTLL)
it is designed to be implementable on top of XSLT (XSLT2 in this case)
however of course it can be implemented in Java or .NET or C++ directly
too: DSRL is certainly suitable for building into a validator as a
pre-processor, in a way a little analogous to OASIS XML Catalogs. DSRL
is a real missing piece in the puzzle: it provides a simple tool for
remapping names in documents. This allows a more declarative approach
than just using XSLT, and makes the task of mapping suitable for
non-programmers. It fits into the schema ecosystem because it lets you
rename the names in your document to suit that of a standard schema.
It is only about 18 pages long, including examples, and easy to read.
We are used to saying that 'syntax is easy; semantics is hard'. But
even syntax is not easy without straightforward tools. Just last week
I was working with an example of a company that was considering using
an standard external schema, but wanted to use its own terms for things
where they existed. Exactly a job for DSRL! DSRL allows these kinds of
mapping, and I think that like ISO Schematron and ISO NVRL it will
progressively become part of the schema environment for standards,
especially outside the English-speaking world, and especially because
XML is the structured format 'for the rest of us'. Even the most
tragic XML Schema devotee realizes that there needs to be some limits
to XSDs scope, and DRSL (and Schematron and NVRL) have a good fit even
with XSD. (Of course, we designed them around RELAX NG, but standards
are pragmatics not religions.) DSRL allows the following remappings --
organized into a series of maps that typically relate to an output
namespace: Element names (in an Xpath context); Attribute names; Element
simple values; Attribute values; Default values for elements or attributes
(including the subelement after which the content may go, in the case
of an element: mixed content is not ignored!); Processing instruction
targets; Entity names (e.g. for undeclared entity references). In
addition, a new XML-based syntax for defining entities is given. Note:
Document Semantics Renaming Language (DSRL) is Part 8 in the 10-part
Document Schema Definition Languages (DSDL) ISO/IEC specification. More Information See also DSDL Part 8 references: Click Here
Bridging XML, E4X and JSON
Efforts have been underway recently to develop a schema language for
JSON, analogous to the XML Schema Definition Language (XSD) or RelaxNG
languages in the XML arena. Similarly, a JSON transformation language
is being proposed and bandied about in various AJAX circles as web2
developers attempt to take the best of what XML has to offer and recast
it from the angle-bracket modality to the braced modality... The [JSON]
notation is short, sweet, easy to code and is consistent with normal
JavaScript practices. This simplicity in both declaring and working
with JavaScript (and by extension with JSON) raises significant
questions about whether in fact JSON may in fact be better in this
role of web communication than XML. Admittedly, JSON does have some
limitations. One of the most compelling is the fact that JSON has no
intrinsic concept of namespace. Namespaces are not universally loved
in the XML world, but as people work with an ever larger gamut of XML,
the advantages of namespaces usually become apparent quickly. What this
means in practice is that while it is possible to use lexical namespace
constructs, in JSON, they are only coding conventions -- there is no
intrinsic capability within JavaScript for differentiating on namespaces.
Another problem faced by JSON is what I call the ABA dilemma. A
JavaScript object, like any hash or associate array system, can
effectively store only one 'name' at any given level of object. However,
it can (and indeed should) be argued that the principle role of JSON
is to act as a lightweight object transport envelope, not a document
one, and the ABA problem usually occurs very seldom in object
representations. I've deliberately held off discussing EcmaScript
for XML (e4x) here, because, at least for Mozilla Firefox and Adobe
Flash, e4x readily addresses all of the same issues that JSON does...
I'd like to push a proposal to both the XML and AJAX communities,
something that I think needs to be taken up by the W3C, the OpenAJAX
alliance and JSON.org especially. Establish a set of conventions
within JSON that most readily facilitate JSON being used in an XML
context. These conventions should be syntactical, things that can be
done with hash key naming conventions that can be picked up by a
JSON/XML bridge to transform between the two formats. More Information See also James Clark on XML and JSON: Click Here
JSON, analogous to the XML Schema Definition Language (XSD) or RelaxNG
languages in the XML arena. Similarly, a JSON transformation language
is being proposed and bandied about in various AJAX circles as web2
developers attempt to take the best of what XML has to offer and recast
it from the angle-bracket modality to the braced modality... The [JSON]
notation is short, sweet, easy to code and is consistent with normal
JavaScript practices. This simplicity in both declaring and working
with JavaScript (and by extension with JSON) raises significant
questions about whether in fact JSON may in fact be better in this
role of web communication than XML. Admittedly, JSON does have some
limitations. One of the most compelling is the fact that JSON has no
intrinsic concept of namespace. Namespaces are not universally loved
in the XML world, but as people work with an ever larger gamut of XML,
the advantages of namespaces usually become apparent quickly. What this
means in practice is that while it is possible to use lexical namespace
constructs, in JSON, they are only coding conventions -- there is no
intrinsic capability within JavaScript for differentiating on namespaces.
Another problem faced by JSON is what I call the ABA dilemma. A
JavaScript object, like any hash or associate array system, can
effectively store only one 'name' at any given level of object. However,
it can (and indeed should) be argued that the principle role of JSON
is to act as a lightweight object transport envelope, not a document
one, and the ABA problem usually occurs very seldom in object
representations. I've deliberately held off discussing EcmaScript
for XML (e4x) here, because, at least for Mozilla Firefox and Adobe
Flash, e4x readily addresses all of the same issues that JSON does...
I'd like to push a proposal to both the XML and AJAX communities,
something that I think needs to be taken up by the W3C, the OpenAJAX
alliance and JSON.org especially. Establish a set of conventions
within JSON that most readily facilitate JSON being used in an XML
context. These conventions should be syntactical, things that can be
done with hash key naming conventions that can be picked up by a
JSON/XML bridge to transform between the two formats. More Information See also James Clark on XML and JSON: Click Here
W3C Publishes Mobile Ajax Workshop Report
W3C announced the publication of a report on the Workshop on Mobile
Ajax co-sponsored by W3C and the OpenAjax Alliance. The report was
written by the Jon Ferraiolo and reviewed by Daniel Appelquist (the
two co-chairs for the workshop). Among areas the Workshop identified
as needing attention are JavaScript access to device APIs, offline/
disconnected operation, widgets, mashups and security. The Workshop
was held in Mountain View, CA, USA, hosted by Microsoft. Some of the
position papers called for new standards efforts across a spectrum
of topics. Implicit in these proposals is the general notion that if
the industry can agree on key standards, then the industry would be
unleashed to pursue major innovations due to cost efficiencies achieved
due to unification of the delivery platform. The attendees listed many
candidates for standards activities: local caching, smart caching,
APIs to device capabilities, key mapping, security, mashups, microformats
for PIM information, server push, DOM extensions for mobile, CSS
extensions for mobile, and best practices. Bennett Marks (Nokia)
announced that OMA browser 2.4 include XHR and will be the last browser
standard they will develop. OMA has concluded that full browsers will
be sufficiently ubiquitous soon enough, so it does not make sense to
do further updates of the OMA mobile browser subset standards. However,
standards take years to develop and the marketplace is moving quickly.
There was general agreement that standards activities are not good
places for invention and sometimes better when attempting standards to
achieve market consolidation. More Information See also the W3C news item Click Here
Ajax co-sponsored by W3C and the OpenAjax Alliance. The report was
written by the Jon Ferraiolo and reviewed by Daniel Appelquist (the
two co-chairs for the workshop). Among areas the Workshop identified
as needing attention are JavaScript access to device APIs, offline/
disconnected operation, widgets, mashups and security. The Workshop
was held in Mountain View, CA, USA, hosted by Microsoft. Some of the
position papers called for new standards efforts across a spectrum
of topics. Implicit in these proposals is the general notion that if
the industry can agree on key standards, then the industry would be
unleashed to pursue major innovations due to cost efficiencies achieved
due to unification of the delivery platform. The attendees listed many
candidates for standards activities: local caching, smart caching,
APIs to device capabilities, key mapping, security, mashups, microformats
for PIM information, server push, DOM extensions for mobile, CSS
extensions for mobile, and best practices. Bennett Marks (Nokia)
announced that OMA browser 2.4 include XHR and will be the last browser
standard they will develop. OMA has concluded that full browsers will
be sufficiently ubiquitous soon enough, so it does not make sense to
do further updates of the OMA mobile browser subset standards. However,
standards take years to develop and the marketplace is moving quickly.
There was general agreement that standards activities are not good
places for invention and sometimes better when attempting standards to
achieve market consolidation. More Information See also the W3C news item Click Here
Spring Tool Suite: Next-Gen JEE Development
Interface21, developer of Spring application framework has announced
that it will partner with Tasktop Technologies, creator of the Eclipse
Mylyn project, to develop the Spring Tool Suite, an integrated set of
tools featuring Mylyn's task-focused user interface for building
enterprise Java applications. The suite will allow teams of developers
to more easily manage very large applications by emphasizing the
relevant portions a developer is working on, with more-graphical,
more-easy to navigate views, while minimizing the parts of the structure
that aren't relevant in that particular context. The Spring Tool Suite
will include support for: (1) The latest Spring 2.0 features, including
namespace-based configurations; (2) Spring Web Flow, including an
extension to WTP's XML editor for content assist, hyperlinking,
validation, and graphical editing; (3) Tools for Spring Aspect-oriented
programming based development, including support for validating
configurations and visualization of cross cutting references; (4) Spring
Java configuration. The partners plan to continue co-evolve both Spring
Tools Suite and the open-source projects that it's built upon, thereby
avoiding the pitfall of having tool development lag behind the advances
in the Java language and libraries. For Interface21 subscription
customers, the Spring Tool Suite will assist in training as well as
in application development. The suite will contain training materials
embedded along with Mylyn-based task contexts to walk through building
Spring applications. The user interface will automatically trigger
wizards and create projects, displaying only the parts of the JDK,
Spring Framework and so on that are relevant to what you're learning. More Information
that it will partner with Tasktop Technologies, creator of the Eclipse
Mylyn project, to develop the Spring Tool Suite, an integrated set of
tools featuring Mylyn's task-focused user interface for building
enterprise Java applications. The suite will allow teams of developers
to more easily manage very large applications by emphasizing the
relevant portions a developer is working on, with more-graphical,
more-easy to navigate views, while minimizing the parts of the structure
that aren't relevant in that particular context. The Spring Tool Suite
will include support for: (1) The latest Spring 2.0 features, including
namespace-based configurations; (2) Spring Web Flow, including an
extension to WTP's XML editor for content assist, hyperlinking,
validation, and graphical editing; (3) Tools for Spring Aspect-oriented
programming based development, including support for validating
configurations and visualization of cross cutting references; (4) Spring
Java configuration. The partners plan to continue co-evolve both Spring
Tools Suite and the open-source projects that it's built upon, thereby
avoiding the pitfall of having tool development lag behind the advances
in the Java language and libraries. For Interface21 subscription
customers, the Spring Tool Suite will assist in training as well as
in application development. The suite will contain training materials
embedded along with Mylyn-based task contexts to walk through building
Spring applications. The user interface will automatically trigger
wizards and create projects, displaying only the parts of the JDK,
Spring Framework and so on that are relevant to what you're learning. More Information
Cleversafe Distributes Open Source Storage
Open source storage startup Cleversafe is set to challenge the
decades-old RAID approach to distributing storage with its global
Dispersed Storage Network (DSN). With a traditional RAID array, data
is striped across a number of disks, a fixed number of which are
required to be operational for the data to be recreated. With its new
DSN release, Cleversafe is allowing users to specify how many locations
the data will be sliced across and how many active nodes a user will
need in order to recreate the data. In Cleversafe's initial release,
the software required a fixed 11 nodes in order to have a DSN setup,
with six nodes required to recreate the data. With the new release
the user has the flexibility to specify the size of the network and
the number of nodes required for recovery. So for example an enterprise
could set up a DSN with eight nodes and specify that they only need
three of them to recover the data. Cleversafe's DSN uses a mathematical
formula known as the Cauchy Reed-Solomon Information Dispersal Algorithm
(IDA) when slicing data. Each data slice on its own is unusable, so
the GPL version 2 for its DSN software in order to help grow the
ecosystem and the technology. GPL is a reciprocal license and requires
developers to add code to the DSN to contribute it back into the project.
Beyond the open source code, Cleversafe has also patented at least four
inventions related to DSN, with more to follow. There is no conflict
between GPL v2 and Cleversafe's patents, according to the company. More Information
decades-old RAID approach to distributing storage with its global
Dispersed Storage Network (DSN). With a traditional RAID array, data
is striped across a number of disks, a fixed number of which are
required to be operational for the data to be recreated. With its new
DSN release, Cleversafe is allowing users to specify how many locations
the data will be sliced across and how many active nodes a user will
need in order to recreate the data. In Cleversafe's initial release,
the software required a fixed 11 nodes in order to have a DSN setup,
with six nodes required to recreate the data. With the new release
the user has the flexibility to specify the size of the network and
the number of nodes required for recovery. So for example an enterprise
could set up a DSN with eight nodes and specify that they only need
three of them to recover the data. Cleversafe's DSN uses a mathematical
formula known as the Cauchy Reed-Solomon Information Dispersal Algorithm
(IDA) when slicing data. Each data slice on its own is unusable, so
the GPL version 2 for its DSN software in order to help grow the
ecosystem and the technology. GPL is a reciprocal license and requires
developers to add code to the DSN to contribute it back into the project.
Beyond the open source code, Cleversafe has also patented at least four
inventions related to DSN, with more to follow. There is no conflict
between GPL v2 and Cleversafe's patents, according to the company. More Information
Monday, October 15, 2007
XForms Evening Sessions at XML 2007
Seven presentations on XForms are scheduled for Monday, December 03,
2007 at the XML 2007 Conference and Exposition in Boston, Massachusetts,
USA. W3C XForms is "a markup language that addresses the modern needs
of electronic forms. It is based on XML and can deliver the collected
values as an XML document. It addresses questions of authorability,
usability, accessibility, device independence, internationalization,
integration into different host languages, and reducing the need for
scripting." This event brings together a number of the leaders in the
XForms community to present the business value of XForms, including
design experience, end-to-end solution development, case studies and
driving business value through Web 2.0 integration. The session
culminates in a keynote address by Elliotte Rusty Harold, who offers
his vision and advice on the future of XForms. Sessions include: (1)
John Boyer, "Seeing is Believing: Intuitive Visual XForms Design" --
We will demonstrate that XForms can offer an order of magnitude
simplification to the design and development of business applications.
(2) Dan McCreary, "The Pure Declarative Approach: XForms in Real Estate
Forms Case Study" -- We use almost no Java or JavaScript and use mostly
on XML Schemas to capture requirements, XML transforms to transform
requirements into XForms, native XML databases to store the data,
Schematron to store business rule checks, and XQuery for manipulatio
n and reporting of XML datasets. (3) Doug Tidwell, "Creating a Custom
Editor for Everything" -- We'll demonstrate how to use XForms to
create a custom editor for an XML vocabulary, using Service Component
Architecture (SCA) as an example. (4) Erik Bruchez, "XForms and the
eXist XML database: a Perfect Couple" -- We show how the XForms 1.1
submission module, which supports REST, can be used to perform CRUD
operations in eXist; we also look at how XForms can directly submit
XML database queries using the powerful XQuery 1.0 language implemented
by eXist. (5) Mark Birbeck, "XForms, XHTML, and RDFa for Internet-Facing
Applications" -- The applications include desktop widgets and gadgets,
pure Ajax browser applications, web applications that use browser
plug-ins such as formsPlayer, and complete standalone desktop
applications, running independently of a browser. (6) Charles Wiecha,
"Composition and Choreography of Web Components in XForms" -- We
propose a programming model for composing and controlling Web 2.0
documents based on the Model-View-Controller design of XForms. (7)
Elliotte Rusty Harold, "How XForms Can Win" (Keynote). More Information See also XML and Forms Click Here
2007 at the XML 2007 Conference and Exposition in Boston, Massachusetts,
USA. W3C XForms is "a markup language that addresses the modern needs
of electronic forms. It is based on XML and can deliver the collected
values as an XML document. It addresses questions of authorability,
usability, accessibility, device independence, internationalization,
integration into different host languages, and reducing the need for
scripting." This event brings together a number of the leaders in the
XForms community to present the business value of XForms, including
design experience, end-to-end solution development, case studies and
driving business value through Web 2.0 integration. The session
culminates in a keynote address by Elliotte Rusty Harold, who offers
his vision and advice on the future of XForms. Sessions include: (1)
John Boyer, "Seeing is Believing: Intuitive Visual XForms Design" --
We will demonstrate that XForms can offer an order of magnitude
simplification to the design and development of business applications.
(2) Dan McCreary, "The Pure Declarative Approach: XForms in Real Estate
Forms Case Study" -- We use almost no Java or JavaScript and use mostly
on XML Schemas to capture requirements, XML transforms to transform
requirements into XForms, native XML databases to store the data,
Schematron to store business rule checks, and XQuery for manipulatio
n and reporting of XML datasets. (3) Doug Tidwell, "Creating a Custom
Editor for Everything" -- We'll demonstrate how to use XForms to
create a custom editor for an XML vocabulary, using Service Component
Architecture (SCA) as an example. (4) Erik Bruchez, "XForms and the
eXist XML database: a Perfect Couple" -- We show how the XForms 1.1
submission module, which supports REST, can be used to perform CRUD
operations in eXist; we also look at how XForms can directly submit
XML database queries using the powerful XQuery 1.0 language implemented
by eXist. (5) Mark Birbeck, "XForms, XHTML, and RDFa for Internet-Facing
Applications" -- The applications include desktop widgets and gadgets,
pure Ajax browser applications, web applications that use browser
plug-ins such as formsPlayer, and complete standalone desktop
applications, running independently of a browser. (6) Charles Wiecha,
"Composition and Choreography of Web Components in XForms" -- We
propose a programming model for composing and controlling Web 2.0
documents based on the Model-View-Controller design of XForms. (7)
Elliotte Rusty Harold, "How XForms Can Win" (Keynote). More Information See also XML and Forms Click Here
Develop Asynchronous Web Services with Axis2
This article gives you an overview of different patterns for
asynchronous scenarios in Web services and provides insight into how
to implement them with Apache Axis2. When first introduced as a way
to do application development, Web services implementations supported
only synchronous invocations for request-response interactions
(synchronous in this article implies processing both request and
response in the same thread of execution). But when more and more
applications adopted Web services to expose functionalities and client
applications were designed to interact with Web services, mere
synchronous invocations were seen as bottlenecks. This is because some
Web services implementations take a considerable amount of time to
respond to requests due to various reasons inside the service
implementation. For example, if a Web service requires human intervention
or batch processing at some point, the Web service might take days to
reach an outcome. These delays also caused some of the transport
mechanisms to time out. With the evolution of Web services development,
eventually some SOAP stacks tried to emulate asynchronous invocations
on top of synchronous capabilities. Even though those efforts gave a
sense of asynchronous invocations, they couldn't provide full and real
functionality. Apache Axis2, the open source Web services engine from
Apache Software Foundation, provides first-class support for asynchronous
Web services invocations and implementation. Axis2 has two mechanisms
to provide asynchronicity in the client side and one mechanism in the
server side. More Information See also Apache Axis2 (Java version): Click Here
asynchronous scenarios in Web services and provides insight into how
to implement them with Apache Axis2. When first introduced as a way
to do application development, Web services implementations supported
only synchronous invocations for request-response interactions
(synchronous in this article implies processing both request and
response in the same thread of execution). But when more and more
applications adopted Web services to expose functionalities and client
applications were designed to interact with Web services, mere
synchronous invocations were seen as bottlenecks. This is because some
Web services implementations take a considerable amount of time to
respond to requests due to various reasons inside the service
implementation. For example, if a Web service requires human intervention
or batch processing at some point, the Web service might take days to
reach an outcome. These delays also caused some of the transport
mechanisms to time out. With the evolution of Web services development,
eventually some SOAP stacks tried to emulate asynchronous invocations
on top of synchronous capabilities. Even though those efforts gave a
sense of asynchronous invocations, they couldn't provide full and real
functionality. Apache Axis2, the open source Web services engine from
Apache Software Foundation, provides first-class support for asynchronous
Web services invocations and implementation. Axis2 has two mechanisms
to provide asynchronicity in the client side and one mechanism in the
server side. More Information See also Apache Axis2 (Java version): Click Here
Evolving Standards for IT Service Management
In this paper we describe standards and widely adopted best practices
that facilitate the deployment of information technology service
management (ITSM). We cover the Information Technology Infrastructure
Library (ITIL) framework of best practices for delivering information
technology (IT) services. As part of ITIL we discuss the central role
played by the configuration management database (CMDB). Then we
describe the CMDB federation specification, an emerging standard for
federating data repositories in support of a CMDB. We discuss two
standards for representing management data and constraints on those
data: the Service Modeling Language (SML) and the Solution Deployment
Descriptor (SDD). Finally, we describe how related but incompatible
Web services standards are being unified into a consistent set of
standards. A comprehensive approach to ITSM leverages standards for
information, processes, and services so that people and technology
can interact effectively and efficiently. As such, standards are
essential elements of IT. ITIL, a set of process-based best practices
for the management of IT services, was developed in the United Kingdom
Office of Government Commerce. The International Organization for
Standardization published ISO/IEC 20000-1:2005,6 commonly known as
ISO 20000, which formalizes the ITIL best practices by establishing
certification requirements. ITSM solutions benefit greatly from using
a coherent and robust process framework such as ITIL. ITIL defines
processes that enable IT organizations to efficiently and reliably
manage services and to satisfy performance, availability, and cost
objectives. For example, ITIL defines a change-management process that
starts with a user's submission of a request for change (RFC) and
includes the steps required to analyze the change and plan its
implementation so as to avoid unacceptable impact to other services
and to ensure that all changes are properly authorized. The
configuration-management-database (CMDB) federation specification
is an emerging standard describing how management data repositories
can interact with each other to appear to external clients as a
federated CMDB and how clients may access this data. The CMDB federation
specification defines the interfaces to combine data from multiple
sources into a single view based on reconciling resource identities
or relating management data or both. For example, multiple management
tools may manage the same resource, each assigning an identity to the
resource. The Service Modeling Language (SML) is an emerging standard
that specifies extensions to Extensible Markup Language (XML) schema
to describe IT resources and their interrelationships. A companion
specification, SML Interchange Format (SML-IF), describes how to
represent an SML model in a standard way for interchange. Use of SML
and SML-IF helps to integrate management tools and processes, even
though their underlying technologies differ significantly. Decoupling
the implementations gives IT organizations more flexibility to choose
components that offer the best solution without sacrificing the
integration and consistency goals in ITSM implementations. The SDD10
is an emerging standard from OASIS for representing installable
software packages and their configuration, dependency, and life-cycle
information. This information is used to automate manual tasks in the
deployment of software solutions.
that facilitate the deployment of information technology service
management (ITSM). We cover the Information Technology Infrastructure
Library (ITIL) framework of best practices for delivering information
technology (IT) services. As part of ITIL we discuss the central role
played by the configuration management database (CMDB). Then we
describe the CMDB federation specification, an emerging standard for
federating data repositories in support of a CMDB. We discuss two
standards for representing management data and constraints on those
data: the Service Modeling Language (SML) and the Solution Deployment
Descriptor (SDD). Finally, we describe how related but incompatible
Web services standards are being unified into a consistent set of
standards. A comprehensive approach to ITSM leverages standards for
information, processes, and services so that people and technology
can interact effectively and efficiently. As such, standards are
essential elements of IT. ITIL, a set of process-based best practices
for the management of IT services, was developed in the United Kingdom
Office of Government Commerce. The International Organization for
Standardization published ISO/IEC 20000-1:2005,6 commonly known as
ISO 20000, which formalizes the ITIL best practices by establishing
certification requirements. ITSM solutions benefit greatly from using
a coherent and robust process framework such as ITIL. ITIL defines
processes that enable IT organizations to efficiently and reliably
manage services and to satisfy performance, availability, and cost
objectives. For example, ITIL defines a change-management process that
starts with a user's submission of a request for change (RFC) and
includes the steps required to analyze the change and plan its
implementation so as to avoid unacceptable impact to other services
and to ensure that all changes are properly authorized. The
configuration-management-database (CMDB) federation specification
is an emerging standard describing how management data repositories
can interact with each other to appear to external clients as a
federated CMDB and how clients may access this data. The CMDB federation
specification defines the interfaces to combine data from multiple
sources into a single view based on reconciling resource identities
or relating management data or both. For example, multiple management
tools may manage the same resource, each assigning an identity to the
resource. The Service Modeling Language (SML) is an emerging standard
that specifies extensions to Extensible Markup Language (XML) schema
to describe IT resources and their interrelationships. A companion
specification, SML Interchange Format (SML-IF), describes how to
represent an SML model in a standard way for interchange. Use of SML
and SML-IF helps to integrate management tools and processes, even
though their underlying technologies differ significantly. Decoupling
the implementations gives IT organizations more flexibility to choose
components that offer the best solution without sacrificing the
integration and consistency goals in ITSM implementations. The SDD10
is an emerging standard from OASIS for representing installable
software packages and their configuration, dependency, and life-cycle
information. This information is used to automate manual tasks in the
deployment of software solutions.
Pentaho Makes Open Source BI Semantic
The business intelligence software market is all about enabling business
users to make sense of their data. But sometimes the data's complexity
can make it a daunting task. Open source BI vendor Pentaho claims it
has a solution in the new Pentaho Business Intelligence 1.6, which
provides a semantic metadata layer. Lance Walter, vice president of
marketing at Pentaho: "Pentaho has been marching down the path of making
open source business intelligence easier to use. The latest release is
a critical next step in that it adds an open source business intelligence
metadata layer that lets users build reports with terms like 'customers,'
'products' and 'sales' and insulates them from the underlying database
structure and schema." The BI metadata layer is centrally maintained
by an administrator that can create a map of terms. Those terms are then
served up to users in an AJAX-based thin-client interface so they can
self-serve and create their own reports. Metadata is exposed via XML
using the Common Warehouse Metamodel (CWM), an open-industry standard
format for the expression of metadata that Informatica, Business Objects
and others already support in their BI tools. Pentaho is built natively
around the CWM, so it would be easy for customers to integrate with
metadata they may already have in other tools. Pentaho spent a lot of
time looking at where other BI solutions had failed with their metadata
implementation in order to make sure that Pentaho didn't make the same
mistakes. The standards-based approach is one that so far is serving
Pentaho well and is why it isn't part of the Open Solutions Alliance
(OSA), an effort that aims to make open source solutions interoperate
with each other. Open source BI vendor Jaspersoft plays a large role
in the organization.
users to make sense of their data. But sometimes the data's complexity
can make it a daunting task. Open source BI vendor Pentaho claims it
has a solution in the new Pentaho Business Intelligence 1.6, which
provides a semantic metadata layer. Lance Walter, vice president of
marketing at Pentaho: "Pentaho has been marching down the path of making
open source business intelligence easier to use. The latest release is
a critical next step in that it adds an open source business intelligence
metadata layer that lets users build reports with terms like 'customers,'
'products' and 'sales' and insulates them from the underlying database
structure and schema." The BI metadata layer is centrally maintained
by an administrator that can create a map of terms. Those terms are then
served up to users in an AJAX-based thin-client interface so they can
self-serve and create their own reports. Metadata is exposed via XML
using the Common Warehouse Metamodel (CWM), an open-industry standard
format for the expression of metadata that Informatica, Business Objects
and others already support in their BI tools. Pentaho is built natively
around the CWM, so it would be easy for customers to integrate with
metadata they may already have in other tools. Pentaho spent a lot of
time looking at where other BI solutions had failed with their metadata
implementation in order to make sure that Pentaho didn't make the same
mistakes. The standards-based approach is one that so far is serving
Pentaho well and is why it isn't part of the Open Solutions Alliance
(OSA), an effort that aims to make open source solutions interoperate
with each other. Open source BI vendor Jaspersoft plays a large role
in the organization.
SOA Consortium Elects Steering Committee
The SOA Consortium, an advocacy group of end users, service providers
and solution vendors centered on fostering service-oriented architecture
(SOA) technologies, has elected its Steering Committee and established
a new strategy group. The Consortium is also looking at building a case
study with one of the larger potential SOA users -- the U.S. Army. SOA
is a way of handling loosely coupled applications across various silos,
and the Army presents a tough case. It has multiple solutions running
on different platforms in spread-out locations. The Army currently is
conducting a Lifecycle Management Methodology (LCMM) project for its
software operations and is looking at SOA as a way to manage its
infrastructure in a less costly manner. The LCMM project is focusing on
architecture, governance and change management issues, among others.
The Consortium eventually hopes to add the Army to its SOA case studies
list, which presents success-story summaries of SOA projects across
various industries, big and small. From the announcement: "The SOA
Consortium met recently in Jacksonville, Florida where it elected its
Steering Committee, chartered a new Strategy Group, kicked off the 'SOA
Consortium Army Adoption Project,' and recorded a new podcast on the
relationship between SOA and BPM. The SOA Consortium is an advocacy
group of end users, service providers and technology vendors committed
to helping the Global 1000, major government agencies, and mid-market
businesses successfully adopt Service Oriented Architecture (SOA) by
2010. Sponsors are BEA Systems, Inc., Cisco, IBM Corporation, SAP AG,
and Sparx Systems... The SOA Consortium charted the new Strategy Group
'Generating Business Value from SOA.' Ashwini Ahuja, SDG, and Brian
Erickson, Hitachi Consulting are leading this new strategy. The
Generating Business Value from SOA strategy is focused on building
awareness and linkages between business operations and information
technology professionals on approaches for using SOA to enable business
process improvement initiatives (e.g., BPM, Six Sigma, LEAN etc.).
and solution vendors centered on fostering service-oriented architecture
(SOA) technologies, has elected its Steering Committee and established
a new strategy group. The Consortium is also looking at building a case
study with one of the larger potential SOA users -- the U.S. Army. SOA
is a way of handling loosely coupled applications across various silos,
and the Army presents a tough case. It has multiple solutions running
on different platforms in spread-out locations. The Army currently is
conducting a Lifecycle Management Methodology (LCMM) project for its
software operations and is looking at SOA as a way to manage its
infrastructure in a less costly manner. The LCMM project is focusing on
architecture, governance and change management issues, among others.
The Consortium eventually hopes to add the Army to its SOA case studies
list, which presents success-story summaries of SOA projects across
various industries, big and small. From the announcement: "The SOA
Consortium met recently in Jacksonville, Florida where it elected its
Steering Committee, chartered a new Strategy Group, kicked off the 'SOA
Consortium Army Adoption Project,' and recorded a new podcast on the
relationship between SOA and BPM. The SOA Consortium is an advocacy
group of end users, service providers and technology vendors committed
to helping the Global 1000, major government agencies, and mid-market
businesses successfully adopt Service Oriented Architecture (SOA) by
2010. Sponsors are BEA Systems, Inc., Cisco, IBM Corporation, SAP AG,
and Sparx Systems... The SOA Consortium charted the new Strategy Group
'Generating Business Value from SOA.' Ashwini Ahuja, SDG, and Brian
Erickson, Hitachi Consulting are leading this new strategy. The
Generating Business Value from SOA strategy is focused on building
awareness and linkages between business operations and information
technology professionals on approaches for using SOA to enable business
process improvement initiatives (e.g., BPM, Six Sigma, LEAN etc.).
ISO Schematron Gets More Standards Uptake
W3C's Services Modeling Language group has two new drafts out: Services
Modeling Language 1.1 (latest version) and Service Modeling Language
Interchange Format Version 1.1 (latest version). SML comes out of the
XML activity at W3C, not the WS-* activity, so it seems more aimed at
working on top of POX (plain ole' XML) systems. It has representation
from IBM, Sun, BEA, CA, Intel, HP and a Microsoft. WS has a bad rep at
the moment for over-engineering, but that is partly because many people
have problems that they want to be solved by the almost-simplest possible
technology. The would prefer erring on the side of modesty rather than
grandiosity. SML has nothing directly to do with services despite the
name, and nothing to do with modeling for that matter either: that just
seems to be the use-case that has driven the development of a more general
technology that takes seriously the problem 'How do we validate systems
of documents, including documents held in multiple files and documents
that transclude other documents?', which seems to be an entirely
practical question to me: this is the kind of use case that should be
driving XSD and DSDL development IMHO. In SML, definition documents are
either schema documents that use W3C XML Schemas (with a completely
reworked version of XSDs key/keyref mechanism allowed under appinfo that
handles multi-file references), or rules documents that use ISO Schematron
(vanilla XSLT query language with a slightly extended XPath). A whole
Schematron schema is plonked into the appinfo element rather than using
the Eddie Robertsson' minimal form for embedded Schematrom... In other
Schematron news, I see that it is being used by the RELAXED online HTML
validator, on SourceForge. This project is a good demonstration of using
the ISO DSDL little schema langauges together: NVDL, RELAX NG, and
Schematron. NVDL and RELAX NG are also used in Open XML, and ODF was
defined using RELAX NG. More Information See also Schematron references: Click Here
Modeling Language 1.1 (latest version) and Service Modeling Language
Interchange Format Version 1.1 (latest version). SML comes out of the
XML activity at W3C, not the WS-* activity, so it seems more aimed at
working on top of POX (plain ole' XML) systems. It has representation
from IBM, Sun, BEA, CA, Intel, HP and a Microsoft. WS has a bad rep at
the moment for over-engineering, but that is partly because many people
have problems that they want to be solved by the almost-simplest possible
technology. The would prefer erring on the side of modesty rather than
grandiosity. SML has nothing directly to do with services despite the
name, and nothing to do with modeling for that matter either: that just
seems to be the use-case that has driven the development of a more general
technology that takes seriously the problem 'How do we validate systems
of documents, including documents held in multiple files and documents
that transclude other documents?', which seems to be an entirely
practical question to me: this is the kind of use case that should be
driving XSD and DSDL development IMHO. In SML, definition documents are
either schema documents that use W3C XML Schemas (with a completely
reworked version of XSDs key/keyref mechanism allowed under appinfo that
handles multi-file references), or rules documents that use ISO Schematron
(vanilla XSLT query language with a slightly extended XPath). A whole
Schematron schema is plonked into the appinfo element rather than using
the Eddie Robertsson' minimal form for embedded Schematrom... In other
Schematron news, I see that it is being used by the RELAXED online HTML
validator, on SourceForge. This project is a good demonstration of using
the ISO DSDL little schema langauges together: NVDL, RELAX NG, and
Schematron. NVDL and RELAX NG are also used in Open XML, and ODF was
defined using RELAX NG. More Information See also Schematron references: Click Here
Semantic-Web-Based Knowledge Management: Guest Editors' Introduction
The Semantic Web promises to make Web-accessible data more amenable to
machine processing. This special issue of "IEEE Internet Computing"
presents several proposals for the Semantic Web. Hundreds of millions
of users can now access several billion documents on the Web, and even
larger data sets reside in organizations' intranets and Web-accessible
databases -- the so-called deep Web. As the amount of available data
continues to grow rapidly, it's increasingly difficult for users to
find, organize, access, and maintain the information they require. At
the same time, the notion of the Semantic Web1 promises to make
Web-accessible data more amenable to machine processing. The Semantic
Web is about labeling (annotating) information so that computer systems
(and humans) can process it more meaningfully. The semantics underlying
such annotations usually come from ontologies, which encapsulate
agreement among information creators and users with help from common
nomenclature and the use of rich knowledge representation. We can
distinguish three broad phases in knowledge-management trends in recent
years. In the repository-centric phase, we had one or more central
information repositories with a set of corporate contributors and
reviewers. Second was the move to smaller, facilitated knowledge
communities. Finally, a recent trend that includes social computing
(the use of wikis, blogs, networking sites, collaborative filtering,
and so on) and a less static view of knowledge and its representation
has expanded and replaced previous knowledge-management archetypes.
Knowledge sharing at a global level requires ontological agreements
that support increased interoperability and integration reference
layers. Several frameworks within knowledge-management theory set
contexts for scientific debate. Some emphasize the knowledge life
cycle, others the knowledge product, and many researchers have recently
begun to emphasize the knowledge and social networking perspective,
as previously described. The rapid adoption of Web 2.0 and Web 3.0
technologies adds to this picture a tight connection between knowledge
management, social networks, and various implicit, formal, or powerful
semantics. More Information
machine processing. This special issue of "IEEE Internet Computing"
presents several proposals for the Semantic Web. Hundreds of millions
of users can now access several billion documents on the Web, and even
larger data sets reside in organizations' intranets and Web-accessible
databases -- the so-called deep Web. As the amount of available data
continues to grow rapidly, it's increasingly difficult for users to
find, organize, access, and maintain the information they require. At
the same time, the notion of the Semantic Web1 promises to make
Web-accessible data more amenable to machine processing. The Semantic
Web is about labeling (annotating) information so that computer systems
(and humans) can process it more meaningfully. The semantics underlying
such annotations usually come from ontologies, which encapsulate
agreement among information creators and users with help from common
nomenclature and the use of rich knowledge representation. We can
distinguish three broad phases in knowledge-management trends in recent
years. In the repository-centric phase, we had one or more central
information repositories with a set of corporate contributors and
reviewers. Second was the move to smaller, facilitated knowledge
communities. Finally, a recent trend that includes social computing
(the use of wikis, blogs, networking sites, collaborative filtering,
and so on) and a less static view of knowledge and its representation
has expanded and replaced previous knowledge-management archetypes.
Knowledge sharing at a global level requires ontological agreements
that support increased interoperability and integration reference
layers. Several frameworks within knowledge-management theory set
contexts for scientific debate. Some emphasize the knowledge life
cycle, others the knowledge product, and many researchers have recently
begun to emphasize the knowledge and social networking perspective,
as previously described. The rapid adoption of Web 2.0 and Web 3.0
technologies adds to this picture a tight connection between knowledge
management, social networks, and various implicit, formal, or powerful
semantics. More Information
Sunday, October 14, 2007
Integrate XForms with the Google Web Toolkit, Part 3
The Google Web Tookit (GWT) has become a very popular way to develop
Ajax applications. It allows Java developers to rapidly create Ajax
applications by leveraging their knowledge of Java technology without
requiring any knowledge of JavaScript. XForms represents an evolution
in the HTML standard, and allows for simple constructs to create
complex, dynamic behavior. Both GWT and XForms are powerful enough
to provide complete solutions to many problems. This four-part series
demonstrates how to use the Google Web Toolkit (GWT) and XForms
together to create a dynamic Web application. Part 1 looked at the
two technologies and how both had JavaScript underpinnings. Part 2
shows how to create a small application with two pages. One page uses
GWT to show a list of artists managed by a record company. The second
page uses XForms to display the albums recorded by a particular artist.
Part 3 uses GWT and XForms on the same page. It shows how to take
advantage of each technology's bindings to JavaScript by using
JavaScript to achieve interactivity between GWT and XForms. In this
installment, Part 3, we refactor the rock star application built in
Part 2. That application allows for record executives to manage
artists and their albums. We don't change any of the functionality
from Part 2; instead we change the implementation of that functionality
by mixing GWT and XForms together. You'll see how GWT can be easily
introduced to any existing Web page. We use a GWT-style Ajax call to
load the data dynamically and then use GWT's JSNI to dynamically
create the XForms model. This will allow you to simplify your page,
and you'll simplify it even more by using GWT JSNI to dynamically
create your XForms controls. Mixing GWT elements will not only
simplify the server-side code, it will create smaller initial pages,
with faster downloads and rendering. More Information
Ajax applications. It allows Java developers to rapidly create Ajax
applications by leveraging their knowledge of Java technology without
requiring any knowledge of JavaScript. XForms represents an evolution
in the HTML standard, and allows for simple constructs to create
complex, dynamic behavior. Both GWT and XForms are powerful enough
to provide complete solutions to many problems. This four-part series
demonstrates how to use the Google Web Toolkit (GWT) and XForms
together to create a dynamic Web application. Part 1 looked at the
two technologies and how both had JavaScript underpinnings. Part 2
shows how to create a small application with two pages. One page uses
GWT to show a list of artists managed by a record company. The second
page uses XForms to display the albums recorded by a particular artist.
Part 3 uses GWT and XForms on the same page. It shows how to take
advantage of each technology's bindings to JavaScript by using
JavaScript to achieve interactivity between GWT and XForms. In this
installment, Part 3, we refactor the rock star application built in
Part 2. That application allows for record executives to manage
artists and their albums. We don't change any of the functionality
from Part 2; instead we change the implementation of that functionality
by mixing GWT and XForms together. You'll see how GWT can be easily
introduced to any existing Web page. We use a GWT-style Ajax call to
load the data dynamically and then use GWT's JSNI to dynamically
create the XForms model. This will allow you to simplify your page,
and you'll simplify it even more by using GWT JSNI to dynamically
create your XForms controls. Mixing GWT elements will not only
simplify the server-side code, it will create smaller initial pages,
with faster downloads and rendering. More Information
Open Source WS Stacks for Java - Design Goals and Philosophy
In addition to the options offered by commercial vendors, there are
a number of open source Java frameworks one can choose from to
implement Web services. Among the most popular open source stacks for
implementing a SOAP/WS-* based solution in the Java space are Apache
Axis2, Apache CXF, Spring Web Services, JBossWS and Sun's Metro.
Stefan Tilkov posed a number of questions to the lead developers of
these stacks about their design goals, their approach towards Java
and Web services standards, data binding, accessing XML,
interoperability, REST support, and framework maturity. As was to be
expected, the results revealed many similarities and some noteworthy
differences. The developers interviewed were Paul Fremantle (Axis2),
Dan Diephouse (CXF), Arjen Poutsma (Spring Web Services), Thomas Diesler
(JBossWS) and Kohsuke Kawaguchi (Metro). "There are some design goals
that are shared among of all of the stacks, such as extensibility,
modularity, and performance. Axis2 is designed around an XML object
model called AXIOM, a mixture of streaming and tree-based messaging,
and provides pluggable data binding support; CXF supports pluggable
transports, data bindings, and can even support alternative formats
such as JSON. Spring-WS supports lots of different ways to handle XML,
too -- from XPath-based access to a number of XML APIs such as DOM,
SAX and StAX to data binding approaches such as JAXB, Castor and
XStream. Metro also features pluggable transports and encodings.
Assuming all of these approaches have been put into practice and
actually work as expected, it's hard to see any major difference in
this regard. Paul Fremantle noted that Axis2's architecture was
designed to be implementable in both C and Java. He also highlighted
Axis2's module concept, which allows related collections of handlers
to be deployed, together with libraries and data files, as a single
unit. Dan Diephouse pointed to CXF's embeddability as one of its key
features; another aspect he noted was the focus on ease-of-use for
the developer. Arjen Poutsma put strong emphasis on Spring-WS's
support for the 'contract-first' style of WS development. Thomas
Diesler pointed out that JBossWS can support both its own native
stack as well as integrate with others, including CXF and Metro.
Interoperability is listed by Sun's Kohsuke Kawaguchi as a design
goal for Metro... More Information
a number of open source Java frameworks one can choose from to
implement Web services. Among the most popular open source stacks for
implementing a SOAP/WS-* based solution in the Java space are Apache
Axis2, Apache CXF, Spring Web Services, JBossWS and Sun's Metro.
Stefan Tilkov posed a number of questions to the lead developers of
these stacks about their design goals, their approach towards Java
and Web services standards, data binding, accessing XML,
interoperability, REST support, and framework maturity. As was to be
expected, the results revealed many similarities and some noteworthy
differences. The developers interviewed were Paul Fremantle (Axis2),
Dan Diephouse (CXF), Arjen Poutsma (Spring Web Services), Thomas Diesler
(JBossWS) and Kohsuke Kawaguchi (Metro). "There are some design goals
that are shared among of all of the stacks, such as extensibility,
modularity, and performance. Axis2 is designed around an XML object
model called AXIOM, a mixture of streaming and tree-based messaging,
and provides pluggable data binding support; CXF supports pluggable
transports, data bindings, and can even support alternative formats
such as JSON. Spring-WS supports lots of different ways to handle XML,
too -- from XPath-based access to a number of XML APIs such as DOM,
SAX and StAX to data binding approaches such as JAXB, Castor and
XStream. Metro also features pluggable transports and encodings.
Assuming all of these approaches have been put into practice and
actually work as expected, it's hard to see any major difference in
this regard. Paul Fremantle noted that Axis2's architecture was
designed to be implementable in both C and Java. He also highlighted
Axis2's module concept, which allows related collections of handlers
to be deployed, together with libraries and data files, as a single
unit. Dan Diephouse pointed to CXF's embeddability as one of its key
features; another aspect he noted was the focus on ease-of-use for
the developer. Arjen Poutsma put strong emphasis on Spring-WS's
support for the 'contract-first' style of WS development. Thomas
Diesler pointed out that JBossWS can support both its own native
stack as well as integrate with others, including CXF and Metro.
Interoperability is listed by Sun's Kohsuke Kawaguchi as a design
goal for Metro... More Information
IODEF Specification Approved by the IESG as a Proposed Standard
The IESG has announced the approval of "The Incident Object Description
Exchange Format" specification as an IETF Proposed Standard. This
document has been produced by members of the IETF Extended Incident
Handling Working Group. There was consensus in the WG to publish this
document, though Working Group has now closed. There are seven
implementations of the IODEF that provided useful feedback on the
completeness and quality of the specification. These implementations
come from CERT-Verbund (SIRIOS), Cooper-Cain Inc.* (Anti-Phishing WG),
Cyber Solutions Inc.*, DFLabs*, eCSIRT.net, MIT Lincoln Labs*, and NTT*.
Furthermore, a subset of these organizations [noted by an asterisk]
participated in a semantics interoperability event that also yielded
additional feedback on the data model. The Incident Object Description
Exchange Format (IODEF) defines a data representation that provides a
framework for sharing information commonly exchanged by Computer
Security Incident Response Teams (CSIRTs) about computer security
incidents. The I-D document describes the information model for the
IODEF and provides an associated data model specified with XML Schema.
Organizations require help from other parties to mitigate malicious
activity targeting their network and to gain insight into potential
threats. This coordination might entail working with an ISP to filter
attack traffic, contacting a remote site to take down a bot-network,
or sharing watch-lists of known malicious IP addresses in a consortium.
IODEF provides an XML representation for conveying incident information
across administrative domains between parties that have an operational
responsibility of remediation or a watch-and-warning over a defined
constituency. The data model encodes information about hosts, networks,
and the services running on these systems; attack methodology and
associated forensic evidence; impact of the activity; and limited
approaches for documenting workflow. The IODEF is only one of several
security relevant data representations being standardized. Attempts
were made to ensure they were complimentary. The data model of the
Intrusion Detection Message Exchange Format influenced the design of
the IODEF... Implementing the IODEF in XML provides numerous advantages.
Its extensibility makes it ideal for specifying a data encoding
framework that supports various character encodings. Likewise, the
abundance of related technologies (e.g., XSL, XPath, XML-Signature)
makes for simplified manipulation. More Information See also the specification: Click Here
Exchange Format" specification as an IETF Proposed Standard. This
document has been produced by members of the IETF Extended Incident
Handling Working Group. There was consensus in the WG to publish this
document, though Working Group has now closed. There are seven
implementations of the IODEF that provided useful feedback on the
completeness and quality of the specification. These implementations
come from CERT-Verbund (SIRIOS), Cooper-Cain Inc.* (Anti-Phishing WG),
Cyber Solutions Inc.*, DFLabs*, eCSIRT.net, MIT Lincoln Labs*, and NTT*.
Furthermore, a subset of these organizations [noted by an asterisk]
participated in a semantics interoperability event that also yielded
additional feedback on the data model. The Incident Object Description
Exchange Format (IODEF) defines a data representation that provides a
framework for sharing information commonly exchanged by Computer
Security Incident Response Teams (CSIRTs) about computer security
incidents. The I-D document describes the information model for the
IODEF and provides an associated data model specified with XML Schema.
Organizations require help from other parties to mitigate malicious
activity targeting their network and to gain insight into potential
threats. This coordination might entail working with an ISP to filter
attack traffic, contacting a remote site to take down a bot-network,
or sharing watch-lists of known malicious IP addresses in a consortium.
IODEF provides an XML representation for conveying incident information
across administrative domains between parties that have an operational
responsibility of remediation or a watch-and-warning over a defined
constituency. The data model encodes information about hosts, networks,
and the services running on these systems; attack methodology and
associated forensic evidence; impact of the activity; and limited
approaches for documenting workflow. The IODEF is only one of several
security relevant data representations being standardized. Attempts
were made to ensure they were complimentary. The data model of the
Intrusion Detection Message Exchange Format influenced the design of
the IODEF... Implementing the IODEF in XML provides numerous advantages.
Its extensibility makes it ideal for specifying a data encoding
framework that supports various character encodings. Likewise, the
abundance of related technologies (e.g., XSL, XPath, XML-Signature)
makes for simplified manipulation. More Information See also the specification: Click Here
Building RESTful Services for Your Web Application
"Introducing Project Zero, Part 1" explores a powerful, yet simple,
platform to develop and execute modern Web applications. Project Zero
is an IBM incubator project, focused on agile development of Web 2.0
applications following Service-Oriented Architecture (SOA). Web 2.0
applied to SOA allows Web artifacts to extend the reach of SOA. Think
of this as Web-extended SOA. Project Zero introduces a simple environment
for creating, assembling, and executing applications based on popular
Web technologies. The Project Zero environment includes a scripting
run time for Groovy and PHP, with application programming interfaces
optimized for producing Representational State Transfer (REST)-style
services, integration mashups, and rich Web interfaces. Project Zero
is an incubator project started within IBM that focuses on agile
development of the next generation of dynamic Web applications. Project
Zero is now being developed openly using a community-driven commercial
development process. In this first article installment in the Project
Zero series, get a hands-on, guided tour of the project's innovations
to create, assemble, and deploy powerful Web applications. First, you
are introduced to the community-driven Project Zero and its conventions
for creating RESTful Web services. Using a step-by-step example, you
set up the environment, create a Zero project, build a RESTful service
to expose data, test your application, and import a sample application
to consume the RESTful services. Part 2 in this article series which
will show how to build RESTful services for more complex data, and
introduce other parts of the platform that can help assemble, secure,
and deliver fully functional Web-extended SOA. More Information
platform to develop and execute modern Web applications. Project Zero
is an IBM incubator project, focused on agile development of Web 2.0
applications following Service-Oriented Architecture (SOA). Web 2.0
applied to SOA allows Web artifacts to extend the reach of SOA. Think
of this as Web-extended SOA. Project Zero introduces a simple environment
for creating, assembling, and executing applications based on popular
Web technologies. The Project Zero environment includes a scripting
run time for Groovy and PHP, with application programming interfaces
optimized for producing Representational State Transfer (REST)-style
services, integration mashups, and rich Web interfaces. Project Zero
is an incubator project started within IBM that focuses on agile
development of the next generation of dynamic Web applications. Project
Zero is now being developed openly using a community-driven commercial
development process. In this first article installment in the Project
Zero series, get a hands-on, guided tour of the project's innovations
to create, assemble, and deploy powerful Web applications. First, you
are introduced to the community-driven Project Zero and its conventions
for creating RESTful Web services. Using a step-by-step example, you
set up the environment, create a Zero project, build a RESTful service
to expose data, test your application, and import a sample application
to consume the RESTful services. Part 2 in this article series which
will show how to build RESTful services for more complex data, and
introduce other parts of the platform that can help assemble, secure,
and deliver fully functional Web-extended SOA. More Information
Proposed Working Group: HyperText Transport Protocol Bis (httpbis)
The Internet Engineering Steering Group has announced the proposal for
a new "HTTP bis" IETF working group in the Application Area, to be
managed by Application Area Director Chris Newman (Sun Microsystems)
and Lisa Dusseault (Open Source Applications Foundation). A draft
Working Group Charter has been submitted for informational purposes.
The IESG has not yet made a determination about formation of the WG,
but solicits public comment through October 17, 2007. Hypertext Transfer
Protocol (HTTP/1.1) was published as IETF Standards Track Request for
Comments (RFC) #2616 in June 1999. Its editors include Roy T. Fielding,
James Gettys, Jeffrey C. Mogul, Henrik Frystyk Nielsen, Larry Masinter,
Paul J. Leach, and Tim Berners-Lee. According to the proposed WG Charter,
"HTTP is one of the most successful and widely-used protocols on the
Internet today. However, its specification has several editorial issues.
Additionally, after years of implementation and extension, several
ambiguities have become evident, impairing interoperability and the
ability to easily implement and use HTTP. The working group will refine
RFC 2616 to: (1) Incorporate errata and updates -- e.g., references,
IANA registries, ABNF; (2) Fix editorial problems which have led to
misunderstandings of the specification; (3) Clarify conformance
requirements; (4) Remove known ambiguities where they affect
interoperability; (5) Clarify existing methods of extensibility; (6)
Remove or deprecate those features that are not widely implemented
and also unduly affect interoperability; (7) Where necessary, add
implementation advice; (8) Document the security properties of HTTP
and its associated mechanisms (e.g., Basic and Digest authentication,
cookies, TLS) for common applications). In making these refinements,
the WG should consider implementer experience, demonstrated use of HTTP,
and the impact on existing implementations and deployments. The Working
Group must not introduce a new version of HTTP, and should not
introduce new features or capabilities to HTTP. The Working Group's
specification deliverables are: [i] a document that is suitable to
supersede RFC 2616, and [ii] a document cataloguing the security
properties of HTTP. More Information See also the RFC2616bis Issues list: Click Here
a new "HTTP bis" IETF working group in the Application Area, to be
managed by Application Area Director Chris Newman (Sun Microsystems)
and Lisa Dusseault (Open Source Applications Foundation). A draft
Working Group Charter has been submitted for informational purposes.
The IESG has not yet made a determination about formation of the WG,
but solicits public comment through October 17, 2007. Hypertext Transfer
Protocol (HTTP/1.1) was published as IETF Standards Track Request for
Comments (RFC) #2616 in June 1999. Its editors include Roy T. Fielding,
James Gettys, Jeffrey C. Mogul, Henrik Frystyk Nielsen, Larry Masinter,
Paul J. Leach, and Tim Berners-Lee. According to the proposed WG Charter,
"HTTP is one of the most successful and widely-used protocols on the
Internet today. However, its specification has several editorial issues.
Additionally, after years of implementation and extension, several
ambiguities have become evident, impairing interoperability and the
ability to easily implement and use HTTP. The working group will refine
RFC 2616 to: (1) Incorporate errata and updates -- e.g., references,
IANA registries, ABNF; (2) Fix editorial problems which have led to
misunderstandings of the specification; (3) Clarify conformance
requirements; (4) Remove known ambiguities where they affect
interoperability; (5) Clarify existing methods of extensibility; (6)
Remove or deprecate those features that are not widely implemented
and also unduly affect interoperability; (7) Where necessary, add
implementation advice; (8) Document the security properties of HTTP
and its associated mechanisms (e.g., Basic and Digest authentication,
cookies, TLS) for common applications). In making these refinements,
the WG should consider implementer experience, demonstrated use of HTTP,
and the impact on existing implementations and deployments. The Working
Group must not introduce a new version of HTTP, and should not
introduce new features or capabilities to HTTP. The Working Group's
specification deliverables are: [i] a document that is suitable to
supersede RFC 2616, and [ii] a document cataloguing the security
properties of HTTP. More Information See also the RFC2616bis Issues list: Click Here
Mozilla Plans Firefox Browser For Mobile Devices
There isn't a perfect mobile browser and there is plenty of room for
competition in the space, which is why Mozilla is stepping up its
efforts to improve the browsing experience on mobile phones, the
company said this week. Mozilla's plans include adding mobile devices
to the first class/tier-1 platform set for Mozilla 2, the company's
all-in-one open source Internet application suite that comes with a
Web browser, e-mail, and newsgroup client. The move will make mobile
devices part of Mozilla's core platform, Schroepfer said. Mozilla
also will roll out a version of Mobile Firefox, which can run Firefox
extensions on mobile devices. Developers will be able to build rich
applications for Mobile Firefox using extensible user-interface
language (XUL), a markup language based on XML. Mozilla browsers are
already available on Nokia N800 smartphones and Mozilla offers Minimo,
its mini Firefox browser, to users with a variety of Windows
Mobile-based smartphones. It also offers a service called "Joey,"
which brings Firefox Web content to mobile devices. The service allows
a person to use Firefox to send text clippings, pictures, videos, RSS
content, and live bookmarks to their phone through the Joey server,
and the content can then be accessed on the phone's Web browser.
Mozilla, however, wants to further bridge the desktop and mobile
browsing experience by allowing bookmarks, history, extensions, and
other Firefox capabilities to work just as well on mobile devices.
Mozilla is part of a larger movement by technology companies to bring
a rich Internet experience to mobile devices. Last week, chip designer
ARM Holdings partnered with six other companies to develop a new
Linux-based open-source platform for ultra-mobile PCs. The platform
will include a mobile operating system, application development
framework, and Internet browser. More Information
competition in the space, which is why Mozilla is stepping up its
efforts to improve the browsing experience on mobile phones, the
company said this week. Mozilla's plans include adding mobile devices
to the first class/tier-1 platform set for Mozilla 2, the company's
all-in-one open source Internet application suite that comes with a
Web browser, e-mail, and newsgroup client. The move will make mobile
devices part of Mozilla's core platform, Schroepfer said. Mozilla
also will roll out a version of Mobile Firefox, which can run Firefox
extensions on mobile devices. Developers will be able to build rich
applications for Mobile Firefox using extensible user-interface
language (XUL), a markup language based on XML. Mozilla browsers are
already available on Nokia N800 smartphones and Mozilla offers Minimo,
its mini Firefox browser, to users with a variety of Windows
Mobile-based smartphones. It also offers a service called "Joey,"
which brings Firefox Web content to mobile devices. The service allows
a person to use Firefox to send text clippings, pictures, videos, RSS
content, and live bookmarks to their phone through the Joey server,
and the content can then be accessed on the phone's Web browser.
Mozilla, however, wants to further bridge the desktop and mobile
browsing experience by allowing bookmarks, history, extensions, and
other Firefox capabilities to work just as well on mobile devices.
Mozilla is part of a larger movement by technology companies to bring
a rich Internet experience to mobile devices. Last week, chip designer
ARM Holdings partnered with six other companies to develop a new
Linux-based open-source platform for ultra-mobile PCs. The platform
will include a mobile operating system, application development
framework, and Internet browser. More Information
Bytes not Infosets
Security is the one area where the WS-* world has developed a set of
standards that provide significantly more functionality than has so
far been standardized in the REST world. I don't believe that this
is an inherent limitation of REST; I'm convinced there's an opportunity
to standardize better security for the REST world. So I've been giving
quite a lot of thought to the issue of what the REST world can learn
from WS-Security (and its numerous related standards). Peter Gutmann
has a thought-provoking piece on his web site in which he argues that
XML security (i.e. XML-DSig and XML encryption) are fundamentally
broken... I would suggest that there are two different ways to view
XML: (1) the concrete view: in this view, interchanging XML is all about
interchanging sequences of bytes in the concrete syntax defined by XML
1.0; (2) the infoset view: in this view, interchanging XML is all about
interchanging abstract structures representing XML infosets; the syntax
used to represent the infoset is just a detail to be specified by a
binding; the infoset view tends to lead to bindings up the wazoo. I
think each of these views has its place. The infoset is an invaluable
conceptual tool for thinking about XML processing. However, I think
there's been an unfortunate tendency in the XML world (and the WS-* world)
to overemphasize the infoset view at the expense of the concrete view.
I believe this tendency underlies a lot of the problems that Gutmann
complains of. There's nothing unstable or unsignable about an XML
document under the concrete view. It's just a blob of bytes that you
can hash and sign as easily as anything else (putting external entities
on one side for the moment). The infoset view makes it hard to
accommodate non-XML formats as first-class citizens. If your central
data model is the XML infoset, then everything that isn't XML has to
get mapped into XML in order to be accommodated. For example, the
WS-* world has MTOM. This tends to lead to reinventing XML versions of
things just so they can be a first-class citizens in an infoset-oriented
world... Although infoset-level APIs are needed for processing XML,
when you use infoset-level APIs for interchanging XML between separate
components, I believe you pay a significant price in terms of
flexibility and generality. In particular, using infoset-level APIs
at trust boundaries seems like a bad idea. My conclusion is this: one
aspect of the WS-* approach that should not be carried over to the REST
world is the emphasis on XML infosets. More Information
standards that provide significantly more functionality than has so
far been standardized in the REST world. I don't believe that this
is an inherent limitation of REST; I'm convinced there's an opportunity
to standardize better security for the REST world. So I've been giving
quite a lot of thought to the issue of what the REST world can learn
from WS-Security (and its numerous related standards). Peter Gutmann
has a thought-provoking piece on his web site in which he argues that
XML security (i.e. XML-DSig and XML encryption) are fundamentally
broken... I would suggest that there are two different ways to view
XML: (1) the concrete view: in this view, interchanging XML is all about
interchanging sequences of bytes in the concrete syntax defined by XML
1.0; (2) the infoset view: in this view, interchanging XML is all about
interchanging abstract structures representing XML infosets; the syntax
used to represent the infoset is just a detail to be specified by a
binding; the infoset view tends to lead to bindings up the wazoo. I
think each of these views has its place. The infoset is an invaluable
conceptual tool for thinking about XML processing. However, I think
there's been an unfortunate tendency in the XML world (and the WS-* world)
to overemphasize the infoset view at the expense of the concrete view.
I believe this tendency underlies a lot of the problems that Gutmann
complains of. There's nothing unstable or unsignable about an XML
document under the concrete view. It's just a blob of bytes that you
can hash and sign as easily as anything else (putting external entities
on one side for the moment). The infoset view makes it hard to
accommodate non-XML formats as first-class citizens. If your central
data model is the XML infoset, then everything that isn't XML has to
get mapped into XML in order to be accommodated. For example, the
WS-* world has MTOM. This tends to lead to reinventing XML versions of
things just so they can be a first-class citizens in an infoset-oriented
world... Although infoset-level APIs are needed for processing XML,
when you use infoset-level APIs for interchanging XML between separate
components, I believe you pay a significant price in terms of
flexibility and generality. In particular, using infoset-level APIs
at trust boundaries seems like a bad idea. My conclusion is this: one
aspect of the WS-* approach that should not be carried over to the REST
world is the emphasis on XML infosets. More Information
Wednesday, October 10, 2007
Expand the Editing Capabilities of OpenOffice with XSLT
You might know that you can pull XML data into OpenOffice's spreadsheet
program, Calc, but did you know that you can create a filter to make
word-processing documents out of data stored as XML? This tutorial
shows you how to use OpenOffice's import/export filters to open your
XML data as though it's just a plain document. From there, users can
edit the document much more naturally and then save it back to its
native format. You can also use this feature to easily turn your
documents into XML data. tutorial is for users of OpenOffice, with
a penchant for XML. If you're comfortable with the rigid syntax of the
XML file format, and have dabbled with XML Style Language Transformations
(XSLT), a world of possibilities opens up when you use OpenOffice as
a custom editor for any type of XML-based data. This tutorial
demonstrates the power of XSLT harnessed for the automatic manipulation
and transformation of any XML-based data to and from the OpenDocument
format, thereby bridging the divide between machine-readable XML and
human-friendly hypertext. OpenOffice evolved from yet another open
source product to a full fledged suite of efficient and secure office
applications -- free and highly extensible -- gaining more clout along
the way from industry giants such as Sun Microsystems and, recently,
IBM. This tutorial focuses on a single facet of OpenOffice's
extensibility, working with XML and XSLT filter files to allow plugin
support for any data in the XML form. You can store data as
machine-friendly XML and still edit it in a human-friendly, custom
manner. The former allows easy searches, semantic context and
information retrieval, whereas the latter enables efficient editing
in an advanced hypertext environment. More Information
program, Calc, but did you know that you can create a filter to make
word-processing documents out of data stored as XML? This tutorial
shows you how to use OpenOffice's import/export filters to open your
XML data as though it's just a plain document. From there, users can
edit the document much more naturally and then save it back to its
native format. You can also use this feature to easily turn your
documents into XML data. tutorial is for users of OpenOffice, with
a penchant for XML. If you're comfortable with the rigid syntax of the
XML file format, and have dabbled with XML Style Language Transformations
(XSLT), a world of possibilities opens up when you use OpenOffice as
a custom editor for any type of XML-based data. This tutorial
demonstrates the power of XSLT harnessed for the automatic manipulation
and transformation of any XML-based data to and from the OpenDocument
format, thereby bridging the divide between machine-readable XML and
human-friendly hypertext. OpenOffice evolved from yet another open
source product to a full fledged suite of efficient and secure office
applications -- free and highly extensible -- gaining more clout along
the way from industry giants such as Sun Microsystems and, recently,
IBM. This tutorial focuses on a single facet of OpenOffice's
extensibility, working with XML and XSLT filter files to allow plugin
support for any data in the XML form. You can store data as
machine-friendly XML and still edit it in a human-friendly, custom
manner. The former allows easy searches, semantic context and
information retrieval, whereas the latter enables efficient editing
in an advanced hypertext environment. More Information
Intel XML Software Suite 1.0 Beta
Thorsten Moeller posted an announcement for the release of the Intel
XML Software Suite Beta. The Beta package provides high performance
XSLT processing, XPath, XML Parsing, DOM/SAX support, and XML Schema
Validation functionality for Java and C/C++ environments.The software
is optimized for the newer Core micro-architecture but it will run on
older Intel processors too, e.g. Intel Celeron M, Pentium 4, Pentium D.
Intel XML Software Suite provides a high level of XML conformance with
a 98% pass rate or higher for the W3C and OASIS XML Conformance Test
Suites. Intel XML Software Suite achieves high performance for XML
processing. The software suite's efficient design provides more than
twice the performance compared to competitive Open Source solutions,
enabling fast throughput for business processes. (1) 2X over Apache
XSLTC; (2) 2X over Apache Xalan-C++* XPath; (3) 2X over Apache Xerces
Java Parser for Schema Validation; (4) 6X over Apache Xerces-C++ for
Parsing. From the product overview: "Enterprises are widely adopting
and deploying Service Oriented Architecture (SOA) solutions. Many SOA
implementations rely on message formats defined with XML. The
extensibility and structured nature of XML allows it to be used for
communication between different systems. XML also allows a single
source of material to be easily formatted and consumed by many
different presentation vehicles (i.e. 'readers'). This verbosity,
extensibility and flexibility of XML messages can create performance
challenges for software developers to overcome. Intel XML Software
Suite is a comprehensive suite of high-performance C++ and Java
software-based runtime libraries for Linux and Windows operating
systems, delivering maximum performance for eXtensible Markup Language
(XML) processing on industry standard servers and application
environments. Intel XML Software Suite is standards compliant, to
allow for easy integration into existing XML processing environments
and is optimized to support complex and large-size XML document
processing. More Information See also Intel XML products: Click Here
XML Software Suite Beta. The Beta package provides high performance
XSLT processing, XPath, XML Parsing, DOM/SAX support, and XML Schema
Validation functionality for Java and C/C++ environments.The software
is optimized for the newer Core micro-architecture but it will run on
older Intel processors too, e.g. Intel Celeron M, Pentium 4, Pentium D.
Intel XML Software Suite provides a high level of XML conformance with
a 98% pass rate or higher for the W3C and OASIS XML Conformance Test
Suites. Intel XML Software Suite achieves high performance for XML
processing. The software suite's efficient design provides more than
twice the performance compared to competitive Open Source solutions,
enabling fast throughput for business processes. (1) 2X over Apache
XSLTC; (2) 2X over Apache Xalan-C++* XPath; (3) 2X over Apache Xerces
Java Parser for Schema Validation; (4) 6X over Apache Xerces-C++ for
Parsing. From the product overview: "Enterprises are widely adopting
and deploying Service Oriented Architecture (SOA) solutions. Many SOA
implementations rely on message formats defined with XML. The
extensibility and structured nature of XML allows it to be used for
communication between different systems. XML also allows a single
source of material to be easily formatted and consumed by many
different presentation vehicles (i.e. 'readers'). This verbosity,
extensibility and flexibility of XML messages can create performance
challenges for software developers to overcome. Intel XML Software
Suite is a comprehensive suite of high-performance C++ and Java
software-based runtime libraries for Linux and Windows operating
systems, delivering maximum performance for eXtensible Markup Language
(XML) processing on industry standard servers and application
environments. Intel XML Software Suite is standards compliant, to
allow for easy integration into existing XML processing environments
and is optimized to support complex and large-size XML document
processing. More Information See also Intel XML products: Click Here
Harvard Professor Envisions Enterprise 2.0 Web Services
Harvard Business School professor Andrew McAfee believes that wikis,
blogs and social networks will be combining with Web Services and
Ajax in the corporate world to form what he calls "Enterprise 2.0."
Enterprise 2.0 has the potential to be an IT and corporate game changer
McAfee told Sonny Singh, senior vice president in the Industries
Business Unit at Oracle Corp. in a Webcast last week. McAfee answered
questions about Enterprise 2.0 from the Oracle executive and audience
members at the event previewing Oracle's plans to integrate Enterprise
2.0 into its middleware, service-oriented architecture (SOA) and
business process management (BPM) offerings. Enterprise 2.0 will be
a theme at the Oracle OpenWorld conference in San Francisco next
month, the executives said. McAfee said he first realized the
potential of Web 2.0 technologies to become an Enterprise 2.0 platform
while studying more traditional corporate software applications
including ERP, BPM, supply chain management and customer relationship
management (CRM). At first, he was skeptical about the value of Web
2.0 for business, but hands-on experience convinced him that it had
potential. More Information
blogs and social networks will be combining with Web Services and
Ajax in the corporate world to form what he calls "Enterprise 2.0."
Enterprise 2.0 has the potential to be an IT and corporate game changer
McAfee told Sonny Singh, senior vice president in the Industries
Business Unit at Oracle Corp. in a Webcast last week. McAfee answered
questions about Enterprise 2.0 from the Oracle executive and audience
members at the event previewing Oracle's plans to integrate Enterprise
2.0 into its middleware, service-oriented architecture (SOA) and
business process management (BPM) offerings. Enterprise 2.0 will be
a theme at the Oracle OpenWorld conference in San Francisco next
month, the executives said. McAfee said he first realized the
potential of Web 2.0 technologies to become an Enterprise 2.0 platform
while studying more traditional corporate software applications
including ERP, BPM, supply chain management and customer relationship
management (CRM). At first, he was skeptical about the value of Web
2.0 for business, but hands-on experience convinced him that it had
potential. More Information
XML Schema for Media Control
IESG announced that members of the IETF Multiparty Multimedia Session
Control (MMUSIC) Working Group have released an Internet Draft for
consideration as an IETF Informational RFC. The IESG plans to make a
decision in the next few weeks, and solicits final comments on this
proposed action. The document defines an XML Schema for video fast
update request in a tightly controlled environment, developed by
Microsoft, Polycom, Radvision and used by multiple vendors.
Implementation of this schema for interactive video applications in
SIP environments was designed in order to improve user experience.
This mechanism is being used by both end user video conferencing
terminals and conferencing servers in shipping products. This document
describes the current method, but new implementations are discouraged
from using this method, except for backward compatibility with legacy
systems. Shipping products and new products SHALL use the full intra
request described in "Codec Control Messages in the RTP Audio-Visual
Profile with Feedback (AVPF)". Sending video fast update using the
SIP signaling path, as described in this document, is inferior to
using the RTCP feedback method, since the command flows through all
the proxies in the signaling path adding delay to the messages and
causing unnecessary overload to the proxies. RTCP messages flow end
to end and not through the signaling proxies. The RTCP feedback draft
also adds other required control functions, such as flow control
command which is missing from this document. The IETF Multiparty
MUltimedia SessIon Control (MMUSIC) Working Group was chartered to
develop protocols to support Internet teleconferencing and multimedia
communications. More Information See also the IETF Multiparty Multimedia Session Control (MMUSIC) WG Click Here
Control (MMUSIC) Working Group have released an Internet Draft for
consideration as an IETF Informational RFC. The IESG plans to make a
decision in the next few weeks, and solicits final comments on this
proposed action. The document defines an XML Schema for video fast
update request in a tightly controlled environment, developed by
Microsoft, Polycom, Radvision and used by multiple vendors.
Implementation of this schema for interactive video applications in
SIP environments was designed in order to improve user experience.
This mechanism is being used by both end user video conferencing
terminals and conferencing servers in shipping products. This document
describes the current method, but new implementations are discouraged
from using this method, except for backward compatibility with legacy
systems. Shipping products and new products SHALL use the full intra
request described in "Codec Control Messages in the RTP Audio-Visual
Profile with Feedback (AVPF)". Sending video fast update using the
SIP signaling path, as described in this document, is inferior to
using the RTCP feedback method, since the command flows through all
the proxies in the signaling path adding delay to the messages and
causing unnecessary overload to the proxies. RTCP messages flow end
to end and not through the signaling proxies. The RTCP feedback draft
also adds other required control functions, such as flow control
command which is missing from this document. The IETF Multiparty
MUltimedia SessIon Control (MMUSIC) Working Group was chartered to
develop protocols to support Internet teleconferencing and multimedia
communications. More Information See also the IETF Multiparty Multimedia Session Control (MMUSIC) WG Click Here
Sunday, October 7, 2007
Mathematical Markup Language (MathML) 3.0: Updated Working Draft
W3C's Math Working Group has published an updated Working Draft for the
"Mathematical Markup Language (MathML) Version 3.0" specification.
MathML is an XML application for describing mathematical notation and
capturing both its structure and content. The goal of MathML is to
enable mathematics to be served, received, and processed on the World
Wide Web, just as HTML has enabled this functionality for text. MathML
can be used to encode both mathematical notation and mathematical
content. About thirty-five of the MathML tags describe abstract
notational structures, while another about one hundred and seventy
provide a way of unambiguously specifying the intended meaning of an
expression. Additional chapters discuss how the MathML content and
presentation elements interact, and how MathML renderers might be
implemented and should interact with browsers. Finally, this document
addresses the issue of special characters used for mathematics, their
handling in MathML, their presence in Unicode, and their relation to
fonts. While MathML is human-readable, in all but the simplest cases,
authors use equation editors, conversion programs, and other specialized
software tools to generate MathML. Several versions of such MathML
tools exist, and more, both freely available software and commercial
products, are under development. This specification of the markup
language MathML is intended primarily for a readership consisting of
those who will be developing or implementing renderers or editors using
it, or software that will communicate using MathML as a protocol for
input or output. It is not a User's Guide but rather a reference document. More See also the Math Working Group Roadmap: More Information
"Mathematical Markup Language (MathML) Version 3.0" specification.
MathML is an XML application for describing mathematical notation and
capturing both its structure and content. The goal of MathML is to
enable mathematics to be served, received, and processed on the World
Wide Web, just as HTML has enabled this functionality for text. MathML
can be used to encode both mathematical notation and mathematical
content. About thirty-five of the MathML tags describe abstract
notational structures, while another about one hundred and seventy
provide a way of unambiguously specifying the intended meaning of an
expression. Additional chapters discuss how the MathML content and
presentation elements interact, and how MathML renderers might be
implemented and should interact with browsers. Finally, this document
addresses the issue of special characters used for mathematics, their
handling in MathML, their presence in Unicode, and their relation to
fonts. While MathML is human-readable, in all but the simplest cases,
authors use equation editors, conversion programs, and other specialized
software tools to generate MathML. Several versions of such MathML
tools exist, and more, both freely available software and commercial
products, are under development. This specification of the markup
language MathML is intended primarily for a readership consisting of
those who will be developing or implementing renderers or editors using
it, or software that will communicate using MathML as a protocol for
input or output. It is not a User's Guide but rather a reference document. More See also the Math Working Group Roadmap: More Information
Updated Draft TAG Finding: Associating Resources with Namespaces
Members of the W3C Technical Architecture Group (TAG) have published
a revised version of the Draft TAG Finding on "Associating Resources
with Namespaces." The draft responds to problems some commentators had
with the proposed RDF model. The document addresses the question of
how ancillary information (schemas, stylesheets, documentation, etc.)
can be associated with a namespace. The names in a namespace form a
collection: (1) Sometimes it is a collection of element names --
DocBook and XHTML, for example; (2) sometimes it is a collection of
attribute names -- XLink, for example; (3) sometimes it is a collection
of functions -- XQuery 1.0 and XPath 2.0 Data Model; (4) sometimes it
is a collection of properties -- FOAF; (5) sometimes it is a collection
of concepts (WordNet), and many other uses are likely to arise. There's
no requirement that the names in a namespace only identify items of a
single type; elements and attributes can both come from the same
namespace as could functions and concepts or any other homogeneous or
heterogeneous collection you can imagine. The names in a namespace can,
in theory at least, be defined to identify any thing or any number of
things. Given the wide variety of things that can be identified, it
follows that an equally wide variety of ancillary resources may be
relevant to a namespace. A namespace may have documentation
(specifications, reference material, tutorials, etc., perhaps in several
formats and several languages), schemas (in any of several forms),
stylesheets, software libraries, applications, or any other kind of
related resource. The names in a namespace likewise may have a range
of information associated with them. A user encountering a namespace
might want to find any or all of these related resources. In the absence
of any other information, a logical place to look for these resources,
or information about them, is at the location of the namespace URI itself.
The question remains: how can we best provide both human and machine
readable information at the namespace URI such that we can achieve the
good practice identified by web architecture? One early attempt was
RDDL; RDDL 1.0 is an XLink-based vocabulary for connecting a namespace
document to related resources and identifying their nature and purpose.
This finding therefore attempts to address the problem by considering
it in a more general fashion. We: define a conceptual model for
identifying related resources that is simple enough to garner community
consensus as a reasonable abstraction for the problem; show how RDDL 1.0
is one possible concrete syntax for this model; show how other concrete
syntaxes could be defined and identified in a way that would preserve
the model.
a revised version of the Draft TAG Finding on "Associating Resources
with Namespaces." The draft responds to problems some commentators had
with the proposed RDF model. The document addresses the question of
how ancillary information (schemas, stylesheets, documentation, etc.)
can be associated with a namespace. The names in a namespace form a
collection: (1) Sometimes it is a collection of element names --
DocBook and XHTML, for example; (2) sometimes it is a collection of
attribute names -- XLink, for example; (3) sometimes it is a collection
of functions -- XQuery 1.0 and XPath 2.0 Data Model; (4) sometimes it
is a collection of properties -- FOAF; (5) sometimes it is a collection
of concepts (WordNet), and many other uses are likely to arise. There's
no requirement that the names in a namespace only identify items of a
single type; elements and attributes can both come from the same
namespace as could functions and concepts or any other homogeneous or
heterogeneous collection you can imagine. The names in a namespace can,
in theory at least, be defined to identify any thing or any number of
things. Given the wide variety of things that can be identified, it
follows that an equally wide variety of ancillary resources may be
relevant to a namespace. A namespace may have documentation
(specifications, reference material, tutorials, etc., perhaps in several
formats and several languages), schemas (in any of several forms),
stylesheets, software libraries, applications, or any other kind of
related resource. The names in a namespace likewise may have a range
of information associated with them. A user encountering a namespace
might want to find any or all of these related resources. In the absence
of any other information, a logical place to look for these resources,
or information about them, is at the location of the namespace URI itself.
The question remains: how can we best provide both human and machine
readable information at the namespace URI such that we can achieve the
good practice identified by web architecture? One early attempt was
RDDL; RDDL 1.0 is an XLink-based vocabulary for connecting a namespace
document to related resources and identifying their nature and purpose.
This finding therefore attempts to address the problem by considering
it in a more general fashion. We: define a conceptual model for
identifying related resources that is simple enough to garner community
consensus as a reasonable abstraction for the problem; show how RDDL 1.0
is one possible concrete syntax for this model; show how other concrete
syntaxes could be defined and identified in a way that would preserve
the model.
W3C Last Call Working Draft for XHTML Role Attribute Module
W3C announced the release of a Last Call Working Draft for "XHTML Role
Attribute Module A Module to Support Role Classification of Elements."
The document was produced by the W3C XHTML 2 Working Group as part of
the HTML Activity. The XHTML Role Attribute defined in the Working
Draft specification allows the author to annotate XML Languages with
machine-extractable semantic information about the purpose of an
element. Use cases include accessibility, device adaptation, server-side
processing, and complex data description. This attribute can be
integrated into any markup language based upon XHTML Modularization.
This module is designed to be used to help extend the scope of
XHTML-family markup languages into new environments. It has been
developed in conjunction with the accessibility community and other
groups to make it easier to describe the semantic meaning of XHTML-family
document content. XHTML Role Attribute Module is not a stand-alone
document type. It is intended to be integrated into other host languages
such as XHTML. A conforming XHTML Role Attribute Module document is a
document that requires only the facilities described as mandatory in
this specification and the facilities described as mandatory in its host
language. Compact URIs: In order to allow for the scoped expression of
role values, the specification uses a superset of of QNames that allows
the contraction of all URIs . These Compact URIs are called CURIEs. XHTML
role attribute takes as its value one or more whitespace separated
CURIEs. Any non-qualified value MUST be interpreted in the XHTML namespace,
and MUST be taken from the list defined in this section. The attribute
describes the role(s) the current element plays in the context of the
document. This can be used, for example, by applications and assistive
technologies to determine the purpose of an element. This could allow a
user to make informed decisions on which actions may be taken on an
element and activate the selected action in a device independent way. It
could also be used as a mechanism for annotating portions of a document
in a domain specific way (e.g., a legal term taxonomy)... XHTML
Modularization 1.1 describes an abstract modularization of XHTML and
implementations of the abstraction using XML Document Type Definitions
(DTDs), and XML Schemas. This modularization provides a means for
subsetting and extending XHTML, a feature needed for extending XHTML's
reach onto emerging platforms. This specification is intended for use by
language designers as they construct new XHTML Family Markup Languages.
This specification does not define the semantics of elements and
attributes, only how those elements and attributes are assembled into
modules, and from those modules into markup languages. This second
version of this specification includes several minor updates to provide
clarifications and address errors found in the first version. It also
provides an implementation using XML Schemas.
Attribute Module A Module to Support Role Classification of Elements."
The document was produced by the W3C XHTML 2 Working Group as part of
the HTML Activity. The XHTML Role Attribute defined in the Working
Draft specification allows the author to annotate XML Languages with
machine-extractable semantic information about the purpose of an
element. Use cases include accessibility, device adaptation, server-side
processing, and complex data description. This attribute can be
integrated into any markup language based upon XHTML Modularization.
This module is designed to be used to help extend the scope of
XHTML-family markup languages into new environments. It has been
developed in conjunction with the accessibility community and other
groups to make it easier to describe the semantic meaning of XHTML-family
document content. XHTML Role Attribute Module is not a stand-alone
document type. It is intended to be integrated into other host languages
such as XHTML. A conforming XHTML Role Attribute Module document is a
document that requires only the facilities described as mandatory in
this specification and the facilities described as mandatory in its host
language. Compact URIs: In order to allow for the scoped expression of
role values, the specification uses a superset of of QNames that allows
the contraction of all URIs . These Compact URIs are called CURIEs. XHTML
role attribute takes as its value one or more whitespace separated
CURIEs. Any non-qualified value MUST be interpreted in the XHTML namespace,
and MUST be taken from the list defined in this section. The attribute
describes the role(s) the current element plays in the context of the
document. This can be used, for example, by applications and assistive
technologies to determine the purpose of an element. This could allow a
user to make informed decisions on which actions may be taken on an
element and activate the selected action in a device independent way. It
could also be used as a mechanism for annotating portions of a document
in a domain specific way (e.g., a legal term taxonomy)... XHTML
Modularization 1.1 describes an abstract modularization of XHTML and
implementations of the abstraction using XML Document Type Definitions
(DTDs), and XML Schemas. This modularization provides a means for
subsetting and extending XHTML, a feature needed for extending XHTML's
reach onto emerging platforms. This specification is intended for use by
language designers as they construct new XHTML Family Markup Languages.
This specification does not define the semantics of elements and
attributes, only how those elements and attributes are assembled into
modules, and from those modules into markup languages. This second
version of this specification includes several minor updates to provide
clarifications and address errors found in the first version. It also
provides an implementation using XML Schemas.
Thinking XML: Firefox 2.0 and XML
This article explains how the latest Firefox release updates XML
processing. Web browsers are perhaps the hottest sort of software right
now, given their emerging role as the new application platform. These
are particularly exciting times for software development, what with the
re-emergence of dynamic HTML technologies as Asynchronous JavaScript +
XML (Ajax), the revival of Microsoft Internet Explorer development, and
more. The relentless pace of development in the Mozilla project has
since led to the release of Firefox 2.0, building on the Gecko 1.8.1
Web rendering engine. Some of the developments in Firefox 2.0 touch on
XML processing. (1) Less control over Web feeds: If you host a Web
feed such as RSS or Atom you might include XSLT in order to turn that
stylesheet into some other representation for the user. In Firefox 1.5,
the browser dutifully loads [the XSLT] and displays the results; you
have to view source to see the actual XML. In Firefox 2.0, the browser
ignores the stylesheet PI and uses a custom Firefox view... After
considerable debate in the user community the Firefox developers decided
to stand their ground, and as things stand, the behavior will be the
same in future Firefox versions; the new behavior is similar to that of
Internet Explorer and Apple Safari. (2) Microsummaries, also called
Live Titles are a neat new feature in Firefox 2.0 where you instruct
the browser to substitute some useful content from a Web site in place
of its title, particularly in bookmarks. A Web site can offer a
microsummary, or the user can create one. The latter case is known as
a "microsummary generator"; it requires XML and XSLT processing on the
part of the user. (3) SAX: There is now a SAX parser framework for the
XPCOM component system of Mozilla. This should allow people to develop
extensions that process XML efficiently, if none of the other higher
level processing technologies are suitable. XPCOM integration means
you can handle SAX events with C++ or JavaScript code, or with any other
language with XPCOM bindings. (4) OpenSearch: OpenSearch is an XML
standard developed at the Amazon A9 incubator. It provides several XML
formats and other conventions to describe and use search engines.
Firefox has always had strong support for extensible search engine
plug-ins, and version 2.0 introduces OpenSearch support so that search
features can be extended using facilities that are also compatible with
Internet Explorer and other browsers. Firefox supports OpenSearch 1.1,
which is presently in beta, so it's possible that updates will be
required to keep compatibility with Firefox and OpenSearch. Even more
significant XML features will come in Firefox 3.0, which is in alpha
testing. Expect a full release in the first half of 2008. It includes
some very significant bug fixes and new features for XML processing.
processing. Web browsers are perhaps the hottest sort of software right
now, given their emerging role as the new application platform. These
are particularly exciting times for software development, what with the
re-emergence of dynamic HTML technologies as Asynchronous JavaScript +
XML (Ajax), the revival of Microsoft Internet Explorer development, and
more. The relentless pace of development in the Mozilla project has
since led to the release of Firefox 2.0, building on the Gecko 1.8.1
Web rendering engine. Some of the developments in Firefox 2.0 touch on
XML processing. (1) Less control over Web feeds: If you host a Web
feed such as RSS or Atom you might include XSLT in order to turn that
stylesheet into some other representation for the user. In Firefox 1.5,
the browser dutifully loads [the XSLT] and displays the results; you
have to view source to see the actual XML. In Firefox 2.0, the browser
ignores the stylesheet PI and uses a custom Firefox view... After
considerable debate in the user community the Firefox developers decided
to stand their ground, and as things stand, the behavior will be the
same in future Firefox versions; the new behavior is similar to that of
Internet Explorer and Apple Safari. (2) Microsummaries, also called
Live Titles are a neat new feature in Firefox 2.0 where you instruct
the browser to substitute some useful content from a Web site in place
of its title, particularly in bookmarks. A Web site can offer a
microsummary, or the user can create one. The latter case is known as
a "microsummary generator"; it requires XML and XSLT processing on the
part of the user. (3) SAX: There is now a SAX parser framework for the
XPCOM component system of Mozilla. This should allow people to develop
extensions that process XML efficiently, if none of the other higher
level processing technologies are suitable. XPCOM integration means
you can handle SAX events with C++ or JavaScript code, or with any other
language with XPCOM bindings. (4) OpenSearch: OpenSearch is an XML
standard developed at the Amazon A9 incubator. It provides several XML
formats and other conventions to describe and use search engines.
Firefox has always had strong support for extensible search engine
plug-ins, and version 2.0 introduces OpenSearch support so that search
features can be extended using facilities that are also compatible with
Internet Explorer and other browsers. Firefox supports OpenSearch 1.1,
which is presently in beta, so it's possible that updates will be
required to keep compatibility with Firefox and OpenSearch. Even more
significant XML features will come in Firefox 3.0, which is in alpha
testing. Expect a full release in the first half of 2008. It includes
some very significant bug fixes and new features for XML processing.
Friday, October 5, 2007
Browser Extensions Using XUL: Firefox Browser Extension With UI Features
The Mozilla project's XUL engine is a user-interface language that you
can use to extend Mozilla browsers, or to build stand-alone applications.
XUL is a surprisingly easy way to build cross-platform browser extensions.
This article puts together the basic pieces you'll need to create most
extensions with user-interface features: XUL, CSS, JavaScript, and DOM.
The Mozilla project team very early decided that it would standardize
core development in C++, but that it would create a component system,
XPCOM (Cross Platform Component Object Model), for sharing core and
extension functionality across platforms. It also developed a means of
designing user interfaces for such components in a platform-neutral
language it called XUL (XML User Interface Language), pronounced "zool".
A companion language, XBL (Extensible Bindings Language), is used to
control dynamic behavior of XUL elements. XUL and XBL are powerful enough
to develop a full browser or other full, cross-platform applications
based on Mozilla components, but for most developers XUL is used more
modestly to extend or manipulate the user interface of an existing browser
or other application -- a use case for which XUL was carefully designed.
This is most often the case when you are developing a browser extension,
and the most attractive target for most Mozilla browser extensions is
Firefox, Mozilla's very popular stand-alone browser. Firefox is built in
XUL and JavaScript. One of the great things about XUL is that Mozilla
browsers treat it, for the most part, like any other Web content. This
means you can rapidly try things out and deploy things during the
development phase, before worrying about proper packaging into
applications or full extensions. XUL has a wealth of UI elements and
each one has a wealth of attributes and properties, adding up to a
generous toolbox for building applications and extensions. Loading XUL
directly into the browser is a handy way to rapidly prototype and
storyboard XUL applications, but once you start manipulating things with
script you may run into unpredictable difficulty. Luckily you have the
option of XULRunner, a stand-alone tool created by Mozilla developers.
XULRunner can run XUL files outside of any browser, thus avoiding the
stringent security model. It's definitely a developer's tool, and can
be a pain to get working, especially on some platforms, but it's an
important option for developing and deploying XUL projects.
can use to extend Mozilla browsers, or to build stand-alone applications.
XUL is a surprisingly easy way to build cross-platform browser extensions.
This article puts together the basic pieces you'll need to create most
extensions with user-interface features: XUL, CSS, JavaScript, and DOM.
The Mozilla project team very early decided that it would standardize
core development in C++, but that it would create a component system,
XPCOM (Cross Platform Component Object Model), for sharing core and
extension functionality across platforms. It also developed a means of
designing user interfaces for such components in a platform-neutral
language it called XUL (XML User Interface Language), pronounced "zool".
A companion language, XBL (Extensible Bindings Language), is used to
control dynamic behavior of XUL elements. XUL and XBL are powerful enough
to develop a full browser or other full, cross-platform applications
based on Mozilla components, but for most developers XUL is used more
modestly to extend or manipulate the user interface of an existing browser
or other application -- a use case for which XUL was carefully designed.
This is most often the case when you are developing a browser extension,
and the most attractive target for most Mozilla browser extensions is
Firefox, Mozilla's very popular stand-alone browser. Firefox is built in
XUL and JavaScript. One of the great things about XUL is that Mozilla
browsers treat it, for the most part, like any other Web content. This
means you can rapidly try things out and deploy things during the
development phase, before worrying about proper packaging into
applications or full extensions. XUL has a wealth of UI elements and
each one has a wealth of attributes and properties, adding up to a
generous toolbox for building applications and extensions. Loading XUL
directly into the browser is a handy way to rapidly prototype and
storyboard XUL applications, but once you start manipulating things with
script you may run into unpredictable difficulty. Luckily you have the
option of XULRunner, a stand-alone tool created by Mozilla developers.
XULRunner can run XUL files outside of any browser, thus avoiding the
stringent security model. It's definitely a developer's tool, and can
be a pain to get working, especially on some platforms, but it's an
important option for developing and deploying XUL projects.
Corel Announces Support for ODF and OOXML in WordPerfect Office Beta
Corel Corporation has announced a new beta version of Corel WordPerfect
Office that supports both the Open Document Format (ODF) and Microsoft
Office Open XML (OOXML), the default file format for Microsoft Office
2007. The new beta will allow users to open, view and edit ODF and OOXML
files and uniquely positions Corel as the industry's format-neutral
vendor of productivity software. The free beta will allow customers to
test WordPerfect Office's ODF and OOXML capabilities and evaluate which
of these emerging standards best meets their needs. The introduction of
ODF and OOXML support in the new WordPerfect Office XML Format Beta is
the latest example of Corel's long standing commitment to multi-format
compatibility. In addition to ODF and OOXML, the Beta supports Microsoft
Office binary formats, Adobe's PDF, Corel's own WordPerfect Office
formats and over 60 others. It also includes an integrated XML Editor
capable of creating custom XML publishing solutions. Corel backs the
multi-format support of WordPerfect Office with a full range of conversion
and consulting services delivered through its Professional Services group.
Information on the company's free document conversion assessments are
available online. Known worldwide as a full-featured and value-priced
alternative to Microsoft Office, WordPerfect Office works with
screen-reading and other accessibility technologies called for under
Section 508 of the United States Rehabilitation Act. Support for ODF
combined with such accessibility capabilities positions WordPerfect
Office to help foster ODF's broader adoption in public sector
organizations, where accessibility is a key requirement.
Office that supports both the Open Document Format (ODF) and Microsoft
Office Open XML (OOXML), the default file format for Microsoft Office
2007. The new beta will allow users to open, view and edit ODF and OOXML
files and uniquely positions Corel as the industry's format-neutral
vendor of productivity software. The free beta will allow customers to
test WordPerfect Office's ODF and OOXML capabilities and evaluate which
of these emerging standards best meets their needs. The introduction of
ODF and OOXML support in the new WordPerfect Office XML Format Beta is
the latest example of Corel's long standing commitment to multi-format
compatibility. In addition to ODF and OOXML, the Beta supports Microsoft
Office binary formats, Adobe's PDF, Corel's own WordPerfect Office
formats and over 60 others. It also includes an integrated XML Editor
capable of creating custom XML publishing solutions. Corel backs the
multi-format support of WordPerfect Office with a full range of conversion
and consulting services delivered through its Professional Services group.
Information on the company's free document conversion assessments are
available online. Known worldwide as a full-featured and value-priced
alternative to Microsoft Office, WordPerfect Office works with
screen-reading and other accessibility technologies called for under
Section 508 of the United States Rehabilitation Act. Support for ODF
combined with such accessibility capabilities positions WordPerfect
Office to help foster ODF's broader adoption in public sector
organizations, where accessibility is a key requirement.
Wednesday, October 3, 2007
Write XForms That Work Across Browsers
The W3C has developed the XForms standard for the presentation and
collection of form data. XForms provides a number of advantages over
existing HTML forms technology: "By splitting traditional XHTML forms
into three parts -- XForms model, instance data, and user interface --
it separates presentation from content, allows reuse, gives strong
typing -- reducing the number of round-trips to the server, as well
as offering device independence and a reduced need for scripting."
XForms documents feature a data model that contains one or more XML
instance documents. The form manipulates such an instance document and
provides for the submission of that XML to a back-end system. This
article shows how XHTML and XForms documents should be hosted and
written to ensure that your end users have the best experience with
your XForms-based applications. Although the article attempts to show
a thorough solution for a variety of deployment configurations, not
all scenarios and configurations can be covered. XForms is intended
to be used embedded within other markup. The most widely used, and the
focus of this article, is within XHTML. There is a need to write your
XHTML documents following some guidelines to ensure a smooth experience
of a variety of browsers like Microsoft's Internet Explorer, Mozilla's
Firefox, X-Smiles, and Opera, to name some. As of this writing, the
only desktop browser that natively supports XForms is X-Smiles.
Therefore, an add-on, or sometimes referred to as a plugin, is needed
for a browser to process the XForms content. There are also solutions
that convert XForms markup to ECMAScript and HTML, which are more
widely supported in deployed browsers. Information
collection of form data. XForms provides a number of advantages over
existing HTML forms technology: "By splitting traditional XHTML forms
into three parts -- XForms model, instance data, and user interface --
it separates presentation from content, allows reuse, gives strong
typing -- reducing the number of round-trips to the server, as well
as offering device independence and a reduced need for scripting."
XForms documents feature a data model that contains one or more XML
instance documents. The form manipulates such an instance document and
provides for the submission of that XML to a back-end system. This
article shows how XHTML and XForms documents should be hosted and
written to ensure that your end users have the best experience with
your XForms-based applications. Although the article attempts to show
a thorough solution for a variety of deployment configurations, not
all scenarios and configurations can be covered. XForms is intended
to be used embedded within other markup. The most widely used, and the
focus of this article, is within XHTML. There is a need to write your
XHTML documents following some guidelines to ensure a smooth experience
of a variety of browsers like Microsoft's Internet Explorer, Mozilla's
Firefox, X-Smiles, and Opera, to name some. As of this writing, the
only desktop browser that natively supports XForms is X-Smiles.
Therefore, an add-on, or sometimes referred to as a plugin, is needed
for a browser to process the XForms content. There are also solutions
that convert XForms markup to ECMAScript and HTML, which are more
widely supported in deployed browsers. Information
Tuesday, October 2, 2007
Swedish Company Xcerion Launches XML Internet Operating System (XIOS/3)
Xcerion has officially announced the Beta launch of XIOS/3 to a limited
group of Beta users. The initial Beta launch consists of the core
operating system, a user desktop, applications, a virtual XML file system,
and a XML text editor for writing applications. According to the
"Technology" overview, "The XIOS/3 consists of three distinct layers:
User Experience Layer, Business Logic Layer and the Domain containing
Data and Communication services. The XML Virtual Machine and UI components
found in the Business Layer make up the core functionality of XIOS/3.
The XML Virtual Machine is a client application server that interprets
XML processes at its core. XIDE/3 automatically generates the required
XML files for the XML Virtual Machine to deploy the application. In fact,
the XIOS desktop that is used for managing documents, launching
applications and handling the basic operating system tasks was created
in the IDE. Applications, XML processes, Workflow, Data Constrains, XML
Schemas, Data and UI Components are all described using XML. This makes
XIOS one of the most open and standard based development and deployment
platforms of today. The Domain layer is mostly used for persistence,
update coordination, and transaction management. The server uses XML Web
Services and can be replaced by other services, making it possible to
use the server of choice. Changes of data bound to any application are
instantly reflected in all applications working on the same data, at
the same time, through the advanced Update Coordinator. Inside XIOS/3,
all data is exposed as XML documents, even if they are XML Web services.
The Service Transparency Layer handles this. XML documents in the
repository are directly available as themselves." Planned features in
Q4 2007 are: (1) A visual drag-and-drop development environment for
building XML applications; (2) Productivity applications -- word
processor, presentation, email, calendar, RSS reader; (3) Marketplace
for finding, sharing and selling applications and content; (4) Mozilla
Firefox browser support, where currently Internet Explorer 6 and above
is supported. More Information See also the XIOS/3 technology overview: INTERVIEW
group of Beta users. The initial Beta launch consists of the core
operating system, a user desktop, applications, a virtual XML file system,
and a XML text editor for writing applications. According to the
"Technology" overview, "The XIOS/3 consists of three distinct layers:
User Experience Layer, Business Logic Layer and the Domain containing
Data and Communication services. The XML Virtual Machine and UI components
found in the Business Layer make up the core functionality of XIOS/3.
The XML Virtual Machine is a client application server that interprets
XML processes at its core. XIDE/3 automatically generates the required
XML files for the XML Virtual Machine to deploy the application. In fact,
the XIOS desktop that is used for managing documents, launching
applications and handling the basic operating system tasks was created
in the IDE. Applications, XML processes, Workflow, Data Constrains, XML
Schemas, Data and UI Components are all described using XML. This makes
XIOS one of the most open and standard based development and deployment
platforms of today. The Domain layer is mostly used for persistence,
update coordination, and transaction management. The server uses XML Web
Services and can be replaced by other services, making it possible to
use the server of choice. Changes of data bound to any application are
instantly reflected in all applications working on the same data, at
the same time, through the advanced Update Coordinator. Inside XIOS/3,
all data is exposed as XML documents, even if they are XML Web services.
The Service Transparency Layer handles this. XML documents in the
repository are directly available as themselves." Planned features in
Q4 2007 are: (1) A visual drag-and-drop development environment for
building XML applications; (2) Productivity applications -- word
processor, presentation, email, calendar, RSS reader; (3) Marketplace
for finding, sharing and selling applications and content; (4) Mozilla
Firefox browser support, where currently Internet Explorer 6 and above
is supported. More Information See also the XIOS/3 technology overview: INTERVIEW
Subscribe to:
Posts (Atom)