Home > SOA Tips > > Using ADO.NET and SDO for SOA data continuity
SOA Tips:
EMAIL THIS
 TIPS & NEWSLETTERS TOPICS 


Using ADO.NET and SDO for SOA data continuity


Ed Tittel
07.24.2007
Rating: --- (out of 5)


Enterprise IT tips and expert advice
Digg This!    StumbleUpon Toolbar StumbleUpon    Bookmark with Delicious Del.icio.us    Add to Google


As service-oriented architectures move from design into implementation and testing, and then into everyday use, it's inevitable that certain gaps will emerge between or among some systems and services. These may be legacy infrastructure elements that have long been isolated from well-trodden pathways for data in the organization, or they just might be the result of well-intentioned and potentially valuable design changes that seek to have systems or services exchange data or participate in common workflows that heretofore had nothing to do with one another.

One traditional method for dealing with such situations has been to create custom programs that understand data representations, transaction semantics and communications capabilities for elements on both sides of a "missing link" so as to bring previously disconnected elements together in a more or less convivial fashion. This approach is workable, but hides numerous potential headaches in that those who think they understand both sides of such links very well inevitably end up understanding one side better than the other and functionality sometimes suffers as a consequence. Then, too, there are the added maintenance and update headaches that come from such work: when programs or services that must remain interconnected change, the code that makes the connection work must also change as well. The more such gaps the IT organization has to bridge, the less likely they are to be able to build and keep up with all of them. Hopefully by now, you're thinking the same thing I am: "There's got to be a better way."

In fact, there are many better ways to handle this kind of thing, but nearly all of them involve XML somewhere in the resulting solutions. That's because XML's outstanding ability to capture data representations, transform content and handle complex semantics, makes it a natural candidate for building bridges between or among applications and services. There may also be cases where SOA must maintain the polite fiction that connectivity among all actors is constantly maintained, when in fact it may occur only from time to time.

As an example, think about mobile sales and service forces out in the field, happily taking orders and handling on-site activities. Business policy may be to keep all databases constantly synchronized, but communications will be working only some of the time for some of that staff in the field. Another common scenario where unity is a polite fiction that occurs only when databases and other systems from multiple vendors get welded together under an SOA umbrella. In these cases, some time will be necessary to enable data to percolate throughout the whole infrastructure so that what is presumed to be a single, unified set of data in fact behaves like a single, unified set of data.

Microsoft's ADO.NET can help to establish mechanisms for data transfer between and among disjointed infrastructure components and it can also help to manage issues related to versioning ("is this the most current version?") and concurrency (keeping track of who's reading from, and more importantly, writing to the data, and preventing incomplete or incorrect updates from occurring). Snapshot mechanisms also come into play in that when applications access data they begin by snapshotting the data before working against it: when they're finished working, the original snapshot is compared to the state of the master set at the time of completion. If both remain identical, updates may be committed. If not, a new snapshot is taken and the update process is restarted.

ADO.NET uses XML to enable transfer of datasets between communicating SOA elements. This means that as long as both sender and receiver are XML aware, both can be sure that data is represented properly and accurately and can be exchanged on the basis of an explicit, shared understanding ( XML Schema, DTD or whatever meta-data description is shared between them. Because ADO.NET works in this manner, both parties to any such exchange don't have to implement ADO.NET. As long as all parties can accept XML as input, and create XML as output, data exchange can proceed.

Service Data Objects, or SDO, provides a way to abstract data access for manipulation in an SOA. ADO.NET works well when databases act as data sources and sinks, but SDO isn't limited to specific types of data sources. SDO defines a loosely-coupled architecture, in that clients need not maintain an active connection to a data source while they manipulate source content. SDO is often used to define standard mechanisms with Service Component Architecture, a service component assembly model. Their approach is to grab a working set of data, create a graph of the interrelated data objects they're using and keep track of changes made, as well as the original state for all nodes in that graph. This is called a change summary, which is essentially an audit trail of all actions undertaken and changes made. The same graph approach also lets the client limit its communications with data sources to touch only items it needs and provides a concurrency mechanism to determine if changes may be committed or not.

Like ADO.NET, SDO also depends on XML to represent the substance of communications. The mechanisms for representing the data graph, navigating its structure, dealing with value comparisons, handling updates and committing changes are all based on explicit, well-documented XML. Here again, any service, process or application that can take XML as input and produce XML as output should be able to deal with SDO as well.

This approach sidesteps the issues inherent in working with specific programming languages such as Java or C#, which depend on shared runtime environments in all communicating parties. The XML basis for ADO.NET and SDO lets developers concentrate on meaningful data exchanges and helps them deal with the issues inherent in intermittently-available or –connected SOA infrastructures. It's no panacea for issues involved in making sure data is available when needed and always clean, current and correct, but it does offer a means whereby far-flung disparate systems and components can be welded together into a working SOA.

For more information:

The Middleware Company, 8/2004, "SOA Blueprints: Occasionally Collected Profile"

IBM Corp and BEA Systems, Inc., November 2003, "Service Data Objects"

Microsoft Corp, undated, Benefits of ADO.NET"

Microsoft Corp, April 2003, "Web Services and Datasets"

About the author

Ed Tittel is a full-time writer and trainer whose interests include XML and development topics, along with IT Certification and information security topics. Among his many XML projects are XML For Dummies, 4th edition, (Wylie, 2005) and the Shaum's Easy Outline of XML (McGraw-Hill, 2004). E-mail Ed at etittel@techtarget.com with comments, questions or suggested topics or tools for review.


Rate this Tip
To rate tips, you must be a member of SearchSOA.com.
Register now to start rating these tips. Log in if you are already a member.




Digg This!    StumbleUpon Toolbar StumbleUpon    Bookmark with Delicious Del.icio.us    Add to Google


RELATED CONTENT
Visual Basic .NET Web services
UML and SOA the Microsoft way
Web services for Windows CE
Deutsche Post delivers .NET in Java CRM thanks to SOA
Silverlight 2.0 for RIAs coming soon
More coders feeling Groovy
Yahoo says no deal
ILOG Rules aligns with Microsoft SOA
Silverlight 2.0 coming to Web 2.0
Microsoft sees REST rising
Intersoft adds RIA for Silverlight
Visual Basic .NET Web services Research

Service Data Objects (SDO)
SCA and SDO standards
Apache releases Java SCA
SOA standards WS-Policy, SCA and SDO advancing rapidly
Microsoft MIA in SOA standards – analyst
ZapThink: SCA and JBI bring nothing to the SOA table
OASIS forms group to advance SCA and SDO
SCA and SDO become SOA essentials for banking system
SOA specs SCA and SDO headed for OASIS and the JCP
SCA and SDO for PHP
The top SOA/Web services stories of 2006

WS-policy
Data services mashup wizard latest for SOA
SOA triple play: Policy meets Semantic Web
WS02 releases wiki-style SOA registry
Post-Oracle: BEA gets back to SOA basics
W3C publishes WS-Policy as recommendation
SOA policy beyond Java and .NET
Mule extending Web services capabilities
SOA standards WS-Policy, SCA and SDO advancing rapidly
Layer 7 releases custom policy SDK
Last call for WS-Addressing spec

RELATED GLOSSARY TERMS
Terms from Whatis.com − the technology online dictionary
Service Data Objects  (SearchSOA.com)

RELATED RESOURCES
2020software.com, trial software downloads for accounting software, ERP software, CRM software and business software systems
Search Bitpipe.com for the latest white papers and business webcasts
Whatis.com, the online computer dictionary

DISCLAIMER: Our Tips Exchange is a forum for you to share technical advice and expertise with your peers and to learn from other enterprise IT professionals. TechTarget provides the infrastructure to facilitate this sharing of information. However, we cannot guarantee the accuracy or validity of the material submitted. You agree that your use of the Ask The Expert services and your reliance on any questions, answers, information or other materials received through this Web site is at your own risk.

About Us  |  Contact Us  |  For Advertisers  |  For Business Partners  |  Site Index  |  RSS
SEARCH 
TechTarget provides enterprise IT professionals with the information they need to perform their jobs - from developing strategy, to making cost-effective IT purchase decisions and managing their organizations' IT projects - with its network of technology-specific Web sites, events and magazines.

TechTarget Corporate Web Site  |  Media Kits  |  Reprints  |  Site Map




All Rights Reserved, Copyright 2001 - 2008, TechTarget | Read our Privacy Policy
  TechTarget - The IT Media ROI Experts