Weblogic Authors: Yeshim Deniz, Elizabeth White, Michael Meiner, Michael Bushong, Avi Rosenthal

Related Topics: Weblogic

Weblogic: Article

Web Services in the World of Java

Web Services in the World of Java

THIS MONTH I'M GOING TO TALK about Web Services (capitals intended - I'll explain in a minute). Specifically, as one of the architects of BEA's SOAP/WSDL stack, I'd like to talk to you about Web Services and where they fit in with J2EE and Java in general.

I capitalize the term "Web Services" because when I use it I'm referring to a very specific set of specifications and protocols. Many companies have retargeted their marketing machines at this space and they're using the term "web services" (lowercase s intended) to mean a wide variety of things, some even stretching it out to mean regular Web sites. Web Services are, by my definition, services whose shape (or interface) is determined by a corresponding WSDL document and that are accessed through some binding to the SOAP protocol. Currently, services falling under this umbrella should follow the SOAP 1.x and WSDL 1.x specifications published by W3C. Commonly, the transport protocol is either HTTP or SMTP, but there are probably others out there. There's another type of Web Service that I'll refer to as Business Web Services. These are built using conversation-based protocols on top of something akin to SOAP (or even SOAP itself). Some examples include ebXML, BizTalk, and RosettaNet.

When you look at the J2EE programming model for ideal points of integration with Web Services, there are two that jump out at you. Stateless Session Beans (SSB) look almost exactly like a typical Web Service. They have an interface that should map to a WSDL document; they're stateless like RPC-style Web Services; and they have the right granularity for loosely coupled systems. On the other hand, JMS destinations map very well to document-style Web Services. You can define an end-point; routing can be done; and the systems are nicely decoupled from one another. There may be other points of integration between the two systems, but because we know that these integration points are more appropriately decided by the Java Community Process (JCP, see JSR 101 & 109), at BEA we felt that we should stick to the obvious overlaps.

Performant, Extensible, Configurable...and Fast
When using our Web Services stack versus others, the main difference is that it's been built to be highly performant, extensible, and configurable. There are hooks for building extensions to the base functionality to ensure that while Web Service usage patterns are developing, you're not left waiting for the next release.

On the performance side, we developed an extremely fast XML parser and layered a very programmer- and execution- efficient API on top of it. Known as an XMLEventStream, this API allows you to access your XML data efficiently like SAX, while at the same time retaining a lot of the convenience of DOM. We also provided tools to deploy Web Services straight from your SSBs and your JMS destinations, so that you can get started right out of the box.

The more difficult decision was to support only very simple types. Our implementation supports the base types (like int and String) and structs (mapped to JavaBeans or Maps) and arrays of these types. We left the type codec very extensible so that you can map more complicated constructs to your own Java class implementations, but we don't encourage using it if you don't have to. It should be used only when interoperability would suffer without it. We also left out some of the higher-level J2EE constructs such as entity beans.

J2EE Should Never Be Stretched Too Far
Ensuring that your system is interoperable with many different clients has become very important. When you're architecting your applications, you need to make careful decisions when choosing what functionality you'll expose and how you'll expose it. For instance, many people are building Web service gateways to entity beans. Since I don't even believe that a Java client should access entity beans over the network (access should always be through a session bean), how could I support the access of entity beans through what should be a stateless interface with no support for remote references?

Another alarming feature that's becoming prevalent with the more "dynamic" implementations (by which I mean unmanageable) is the passing of serializable Java datatypes directly in a SOAP message. Some are even BASE64-encoding the serialized byte array! This is exactly the sort of thing developers should not do when building interoperable systems. All access points to your application should be designed with cleanliness, compatibility, and above all, maintainability firmly in mind.

If there's one thing the browser has taught us, it's that it is possible to have cross-platform applications hosted over the network. The arrival of Web Services promises that we can host cross-platform application services as well, if only a little care is taken.

More Stories By Sam Pullara

Sam Pullara has been a software engineer at WebLogic since 1996 and has contributed to the architecture, design, and implementation of many aspects of the application server.

e-mail: [email protected]

Comments (0)

Share your thoughts on this story.

Add your comment
You must be signed in to add a comment. Sign-in | Register

In accordance with our Comment Policy, we encourage comments that are on topic, relevant and to-the-point. We will remove comments that include profanity, personal attacks, racial slurs, threats of violence, or other inappropriate material that violates our Terms and Conditions, and will block users who make repeated violations. We ask all readers to expect diversity of opinion and to treat one another with dignity and respect.

IoT & Smart Cities Stories
The deluge of IoT sensor data collected from connected devices and the powerful AI required to make that data actionable are giving rise to a hybrid ecosystem in which cloud, on-prem and edge processes become interweaved. Attendees will learn how emerging composable infrastructure solutions deliver the adaptive architecture needed to manage this new data reality. Machine learning algorithms can better anticipate data storms and automate resources to support surges, including fully scalable GPU-c...
Machine learning has taken residence at our cities' cores and now we can finally have "smart cities." Cities are a collection of buildings made to provide the structure and safety necessary for people to function, create and survive. Buildings are a pool of ever-changing performance data from large automated systems such as heating and cooling to the people that live and work within them. Through machine learning, buildings can optimize performance, reduce costs, and improve occupant comfort by ...
The explosion of new web/cloud/IoT-based applications and the data they generate are transforming our world right before our eyes. In this rush to adopt these new technologies, organizations are often ignoring fundamental questions concerning who owns the data and failing to ask for permission to conduct invasive surveillance of their customers. Organizations that are not transparent about how their systems gather data telemetry without offering shared data ownership risk product rejection, regu...
René Bostic is the Technical VP of the IBM Cloud Unit in North America. Enjoying her career with IBM during the modern millennial technological era, she is an expert in cloud computing, DevOps and emerging cloud technologies such as Blockchain. Her strengths and core competencies include a proven record of accomplishments in consensus building at all levels to assess, plan, and implement enterprise and cloud computing solutions. René is a member of the Society of Women Engineers (SWE) and a m...
Poor data quality and analytics drive down business value. In fact, Gartner estimated that the average financial impact of poor data quality on organizations is $9.7 million per year. But bad data is much more than a cost center. By eroding trust in information, analytics and the business decisions based on these, it is a serious impediment to digital transformation.
Digital Transformation: Preparing Cloud & IoT Security for the Age of Artificial Intelligence. As automation and artificial intelligence (AI) power solution development and delivery, many businesses need to build backend cloud capabilities. Well-poised organizations, marketing smart devices with AI and BlockChain capabilities prepare to refine compliance and regulatory capabilities in 2018. Volumes of health, financial, technical and privacy data, along with tightening compliance requirements by...
Predicting the future has never been more challenging - not because of the lack of data but because of the flood of ungoverned and risk laden information. Microsoft states that 2.5 exabytes of data are created every day. Expectations and reliance on data are being pushed to the limits, as demands around hybrid options continue to grow.
Digital Transformation and Disruption, Amazon Style - What You Can Learn. Chris Kocher is a co-founder of Grey Heron, a management and strategic marketing consulting firm. He has 25+ years in both strategic and hands-on operating experience helping executives and investors build revenues and shareholder value. He has consulted with over 130 companies on innovating with new business models, product strategies and monetization. Chris has held management positions at HP and Symantec in addition to ...
Enterprises have taken advantage of IoT to achieve important revenue and cost advantages. What is less apparent is how incumbent enterprises operating at scale have, following success with IoT, built analytic, operations management and software development capabilities - ranging from autonomous vehicles to manageable robotics installations. They have embraced these capabilities as if they were Silicon Valley startups.
As IoT continues to increase momentum, so does the associated risk. Secure Device Lifecycle Management (DLM) is ranked as one of the most important technology areas of IoT. Driving this trend is the realization that secure support for IoT devices provides companies the ability to deliver high-quality, reliable, secure offerings faster, create new revenue streams, and reduce support costs, all while building a competitive advantage in their markets. In this session, we will use customer use cases...