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

Related Topics: Weblogic

Weblogic: Article

An Architectural Blueprint Part 3

Process offers unification

As we've discussed over the past few issues, JTA-style transactions provide a way for multiple data updates to be tied together so application logic can operate safely in the assumption that it will succeed or fail consistently, even in the face of technical failures along the road.

In this last article in this series, I will apply some of the BPM techniques covered in the first two articles (WLDJ, Vol. 3, issues 4-5) to a business case, in order to design a robust SOA-based solution. In particular, I will (1) define the business case as a set of high-level policies, and (2) apply business process improvement techniques to derive an efficient business process model that encapsulates the real-world problem. The business model will contain business events that start processes, the high-level process threads and how they decompose to low-level enterprise business services. Then I will discuss various architectural design options towards building a proof of concept (POC). But first, I'll talk about BEA WebLogic Workshop 8.1's new IDE programming paradigm and in particular how the process integration framework provides a solid programming environment for building SOA Web services integration applications.

From Database Client/Server Tools to a Distributed Application Integration Platform

BEA's new IDE provides a powerful, seamless, and all-encompassing tool for designing and deploying J2EE applications. In the same fashion that MS Access and PowerBuilder propagated the development of mission-critical applications using the client/server model in the early '90s without requiring deep expertise in RDBMS or TCP-IP communication, Workshop hides the OO and J2EE complexities by using simple concepts such as controls, events, methods, and properties without compromising the expressiveness and quality of applications. Visual controls act as the interface layer between developer and application infrastructure. Workshop transforms visual controls into J2EE components and the developer can always write Java code when necessary.

Developers can build complex Web-based user interfaces using Java Page Flow (JPF). Workshop leverages Struts, an open source implementation of Model-View-Controller architecture for binding data elements with interface widgets. This is now called the MVC1 architectural pattern; as opposed to MVC2, which more closely resembles the initial Smalltalk pattern that decouples data presentation and user control from business model. It is worth mentioning here that Barracuda is another open source implementation, not implemented out of the box, of the MVC1 pattern that comes closer to the simplicity of event-based UI that the Visual Studio .NET IDE provides, but I will leave this comparison for another time! Web services connections are built as Java Web Services (JWS) files - standard Java files with a simple Javadoc annotation for accessing Web services functionality. The developer can worry about SOAP protocol, WSDL, and XML bindings only if he wants to!

A Java Control is the single most important concept in WebLogic Workshop 8.1. Pretty much any programmatic resource can be handled as a visual Java Control. A legacy system or a Web service, a custom Java object or an EJB, an external resource or a workflow implementing a piece of proprietary business logic, an asynchronous or two-way messaging state full or stateless conversation, can all be represented as controls. Developers interact with controls by handling events and setting properties, and extend the built-in controls by writing custom controls.

The Business Case

Our fictitious, but virtually real, Car Insurance Company (CIC) is faced with competitive pressures, lower margins, and a higher cost of operating and maintaining legacy systems. Some of the problems are customers demanding shorter decision-making time; client applications for insurance are misplaced when moving from front office to middle office; the complexity in getting information from the legacy systems and vast data repositories; requests for credit information and motor vehicle records is time consuming and hard to track; and finally, underwriters come and go and keep changing communication requirements.

In light of these challenges, the board of directors voted on a number of new policies: (1) establish an e-commerce presence by allowing potential clients to get a 60-second response via the Web; (2) streamline the credit check process and take advantage of the new secure Web services interface that the Department of Motor Vehicle (DMV) just deployed; and (3) become a leader within the underwriting space by establishing a B2B collaborative community. If the project accomplishes its objectives, the board will then make decisions on retiring some of the aging legacy systems. But in this phase, the board strongly recommends optimal utilization of any legacy systems and existing data.

Business Rules
Users visiting the Web site enter their car type, year, miles per year; name, sex, age, and Social Security number. For simplicity, car types are compact, sedan, and SUV with base premiums of 200, 250, and 400 respectively. The mileage per year produces a mileage factor (MF): if less than 8,000 the MF is 1; if between 8,000 and 20,000, the MF is 2; if greater than 20,000, the MF is 3. The gender and age also produce a sex-age factor (SAF): the SAF is 4 for males under 24, 3 for females under 25, 2 for males older than 24 and females between 24 and 34, and 1 for females older than 34. The insurance company uses the DMV's state-of-the-art secure Web service to pull the driver's record. Using proprietary methods based on data collected throughout many years, a legacy back-office application scores the DMV record and produces a driver profile factor (DPF), a number between one and four. The final premium calculation is equal to base premium + weighted factor * 50, where the weighted factor (WF) is equal to (3*MF+4*SAF+4*DPF)/10.

If the WF is less than 20, the agent can produce a quote and send it back to the user; otherwise, the user request for a quote needs to be sent for underwriting. The underwriters want to use the same premium calculation techniques if possible. The user can then decide if he wants to apply for the coverage, in which case he submits payment information, etc. The rest of the process is out of scope for this POC.

Clearly all of these rules are volatile and subject to constant changes and adjustments. Most of them are currently implemented in various systems with varying degree of complexity, from spreadsheets to COBOL books. Human intervention and coordination are also required to complete a request for quote.

Developing a Business Model

Think processes not functions. A process starts with a predefined business event and is what a business does - not how - to produce results consistent with the business policies and corporate vision set by the executive office and mission statement. An event can trigger one or more process threads and can be internal or external to the business. Money-making events are usually external and associated in some fashion with the supply chain. Events can be actual or temporal. Results may be felt inside or outside the firewall, the imaginary protective boundaries of the enterprise. A good and consistent naming convention is always important: a verb plus an object for a business process, i.e., Get DMV records and Calculate Premiums; an actor plus a verb plus an object for an actual event, i.e., Customer Requests Quote; and a time snapshot definition for a temporal event, i.e., Sixty Second Response or 9:00 AM Consolidation.

Clearly, one of the merits of a BPM design and development approach is the visual workflow aspect. However, WebLogic Workshop has no facilities for developing swim-lane type diagrams. The processing design phase has to happen on paper, or using Visio-like drawing tools or BPM tools with design capabilities. The latter approach would create two substantial issues:

  1. Burden of importing/exporting processes
  2. Traceability issues when making changes. Workshop does not even allow a simple view of two or more processes side-by-side in the design area of the IDE. Such a simple solution would make an interactive design session much easier.
For this article, I used the OpenOffice drawing package for the first one of two levels of process decomposition. As the processes gain more depth and get closer to EBS (Enterprise Business Services), I'll start designing in Workshop Studio. I have the ability to group together activities in a box that I can name descriptively and collapse at will. The first step is to develop a high-level process map (see Figure 1) containing actors or participants initiating business events and coarse grain decomposition to sub-processes and activities. This diagram serves a good purpose. It is a baseline communication and serves as a straw man; however, it has a weak point. It misses the fact that processes among two parties have two views. Processes are just like objects that have internal and private implementation and an external public interface. Of course it is all relative and depends on which side of the process you are. In this case, the classification is from the CIC point of view. Figure 2 contains the processes distributed in "swim lanes." There are five processes from left to right: request quote public process, request quote private process, process Quote private process, underwrite private process, and Underwrite public process.

Design Decisions and Architectural Choices

You would think that building UI should be well understood and a simple matter by now. Think again. There are as many options as problem types and each option has its own challenges. For now, I will discuss two issues: event communication and building widgets.

Event Communication
User events need to either start a process and then interact with it or perhaps attach to a long-running monitoring process that in response spawns an instance of a process thread dedicated to a specific client; something like a TCP/IP server listening to a port for client requests and spawning a new process thread to facilitate the interaction with a new client via a dedicated socket. But how do you do that with a request and reply protocol? The answer is you don't; at least not in a trivial and efficient way.

Business events, the heart of a business process-driven enterprise, are at odds with the Web. No surprise here, http was never meant to be a substitute for a full-blown programming paradigm, just a mere protocol for exchanging information, pictures, text and the likes. So what now? In the case of a stateless interaction no real issues exist. Web services can encapsulate and facilitate communication in a synchronous fashion. In the case of stateful interaction conversational Web services, asynchronous in nature, they can maintain state across multiple calls. The programmer equips a conversational Web service with a callback. When the Web service completes its service, the callback in the client code gets activated. That is a nice clean solution; however, some clients cannot have a callback. For example, a Web page interaction using http cannot have a callback installed. So we are back where we started, about three decades ago: polling. Yes, polling. The Web service has to implement a method something like: areYouDoneYet () returning a Boolean true or false. When the service is done, it updates a state variable from false to true. The client code keeps polling or executing the areYouDoneYet () method until it gets a true. The client can then call a getResults () method of the Web service to get the result.

Building Widgets
At first look, JPF sounds similar to process flow but they have nothing in common other than the word process. JPF manages the navigation amongst http pages. Workshop provides a widget-rich environment for building complex UIs. What is particularly powerful is the use of Form Beans, which manage the binding, storage, and validation of form data. JPF communicates with the rest of the system via a conversational Web service. The Web service uses a process control to execute the private process quote process. Since the JPF cannot have a callback mechanism, the Web service implements the polling technique described earlier. In addition, the Web service implants the sixty seconds timer to monitor response from the rest of the systems (see Figure 3).

Worklist Client API

BEA WebLogic Integrator provides a programmatic interface for applications to interact with the process container. As part of the process, an activity may require human interaction. Worklist is a simple HTTP-based testing tool that enables human interaction. It is a work queue. Clearly, a better design is to define your own client interface and hook up to the process engine using the Worklist Client API, but the details of building such an interface would be out of the scope of this article. Worklist provides a simple solution for testing the validity of the Underwriting process. Gregor Hohpe and Bobby Woolf in Enterprise Integration Patterns provide a whole chapter describing a Loan Broker example that is very similar to the concept of Underwriters B2B ecosystem. In particular, they describe three different models: Fixed addressing, Distribution, and Auction. Using a combination of Web services, a list of URIs, and messaging channels, a fully extendable solution can be build.

BPM as Programming Tool

In my previous articles, I said that most process engines are implemented as a kind of state machine, and that Petri nets are Turing complete. You can then prove that any program written in any language can also be implemented in BPM. Clearly, some languages are better than other languages for some specific problem types. The BPM language is the natural choice for implementing the integration layer or volatile and fast changing aspects of the problem.

Business rules make a perfect candidate for a BPM implementation. To make a clarification here, I don't mean more business rules in the sense of Artificial Intelligence expert systems with inference engines and the like. I mean business rules in the sense of what I stated previously with factor calculations and premiums. However, I must admit it would be an interesting exercise to build a generalized expert shell using BPM workflows. To illustrate the point, I have implemented the business rules of our business as a process: computeFactors. I implement a parallel split for the three different factors. In reality, parallel branches are logically concurrent. WebLogic Server serializes the execution of the branches. When grid computing and high-performance computing become a common practice, true parallelization may be just an additional option. For now, such an option is available only through grid-enabling software from specialized companies like Powerllel, or Distributed Resource Manager (DRM) systems providers like Platform and Sun. The third branch executes the DMV Web service that returns the DMV factor. Here is how: assuming the Web service is available on the Internet, I point the browser to it and download the WSDL file on my local disk. Then, in Workshop I browse to the WSDL location, right-click, and select Generate JCX from WSDL. The resulting JCX file is a Web service control that I can now bind to a process element.


WebLogic Platform provides a robust product stack for deploying SOA-based solutions. It offers a highly productive environment that enables the development, deployment, and operations of enterprise-wide distributed solutions. The visual paradigm does a nice job in hiding J2EE and OO complexities. I find the concept of turning almost every resource available into a control - a computing component with a consistent interface - its most powerful feature. In a very consistent and repeatable way, controls harness the power of object reuse and make solutions easily extendible in response to the ever changing agile enterprise.

Process is the unifying construct that is applicable across all development phases. Process bridges the modeling tower of Babel. Business and technology can now talk the same language. At the macro level, process is the natural choice for implementing integration tasks. At the micro level, process is the perfect place to implement volatile aspects of a solution, like business rules. Indeed, BPM is a first-class computing citizen.

The WebLogic Platform implements a comprehensive BPM environment. However, BEA does not provide a critical component of a BPM solution: a pure business process design and modeling environment. In the same way that few business analysts were object modelers, few business analysts will become fluent in BEA's business integration environment. But considering the activities in the modeling space with the acquisitions of Rational Rose and TogetherSoft, Microsoft's renewed interest in UML modeling, and the continued success of the pure-play BPM players, BEA better be working hard on the next all-encompassing release of BPM for Business Analysts, which will probably be UML compliant!

Finally, service-oriented architecture has emerged as the unambiguous fabric of modern distributed systems. The universal acceptance of Web services as the connectivity technology makes collaboration more attainable than ever. Clearly there is more to come in this area. After all, we still accumulate questions faster than we can give answers to existing ones. Some of the questions are in key areas such as security and networking. The very foundation of our technology, TCP/IP, is in doubt, as it is described by Paul A. Watson, in his recent paper "Slipping In The Window: TCP Reset Attacks." And if there is any doubt, we have lost the war on spam, at least for now. Inevitably we can stand still; we never have. The time of IT commoditization has yet to come. I predict that in the next two to three years new technologies and innovations that better answer some of these questions will deliver yet another generation in distributed systems, with more mature, dynamic, and adaptable architectural paradigms.

Until then, processes are everywhere. Can you see them?

More Stories By Labro Dimitriou

Labro Dimitriou is a BPMS subject matter expert and grid computing advisor. He has been in the field of distributed computing, applied mathemtics, and operations research for over 20 years, and has developed commercial software for trading, engineering, and geoscience. Labro has spent the last five years designing BPM-based business solutions.

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
Business professionals no longer wonder if they'll migrate to the cloud; it's now a matter of when. The cloud environment has proved to be a major force in transitioning to an agile business model that enables quick decisions and fast implementation that solidify customer relationships. And when the cloud is combined with the power of cognitive computing, it drives innovation and transformation that achieves astounding competitive advantage.
SYS-CON Events announced today that Silicon India has been named “Media Sponsor” of SYS-CON's 21st International Cloud Expo, which will take place on Oct 31 – Nov 2, 2017, at the Santa Clara Convention Center in Santa Clara, CA. Published in Silicon Valley, Silicon India magazine is the premiere platform for CIOs to discuss their innovative enterprise solutions and allows IT vendors to learn about new solutions that can help grow their business.
DXWorldEXPO LLC announced today that "IoT Now" was named media sponsor of CloudEXPO | DXWorldEXPO 2018 New York, which will take place on November 11-13, 2018 in New York City, NY. IoT Now explores the evolving opportunities and challenges facing CSPs, and it passes on some lessons learned from those who have taken the first steps in next-gen IoT services.
SYS-CON Events announced today that CrowdReviews.com has been named “Media Sponsor” of SYS-CON's 22nd International Cloud Expo, which will take place on June 5–7, 2018, at the Javits Center in New York City, NY. CrowdReviews.com is a transparent online platform for determining which products and services are the best based on the opinion of the crowd. The crowd consists of Internet users that have experienced products and services first-hand and have an interest in letting other potential buye...
Founded in 2000, Chetu Inc. is a global provider of customized software development solutions and IT staff augmentation services for software technology providers. By providing clients with unparalleled niche technology expertise and industry experience, Chetu has become the premiere long-term, back-end software development partner for start-ups, SMBs, and Fortune 500 companies. Chetu is headquartered in Plantation, Florida, with thirteen offices throughout the U.S. and abroad.
SYS-CON Events announced today that DatacenterDynamics has been named “Media Sponsor” of SYS-CON's 18th International Cloud Expo, which will take place on June 7–9, 2016, at the Javits Center in New York City, NY. DatacenterDynamics is a brand of DCD Group, a global B2B media and publishing company that develops products to help senior professionals in the world's most ICT dependent organizations make risk-based infrastructure and capacity decisions.
DXWorldEXPO LLC announced today that All in Mobile, a mobile app development company from Poland, will exhibit at the 22nd International CloudEXPO | DXWorldEXPO. All In Mobile is a mobile app development company from Poland. Since 2014, they maintain passion for developing mobile applications for enterprises and startups worldwide.
Nicolas Fierro is CEO of MIMIR Blockchain Solutions. He is a programmer, technologist, and operations dev who has worked with Ethereum and blockchain since 2014. His knowledge in blockchain dates to when he performed dev ops services to the Ethereum Foundation as one the privileged few developers to work with the original core team in Switzerland.
Cloud-enabled transformation has evolved from cost saving measure to business innovation strategy -- one that combines the cloud with cognitive capabilities to drive market disruption. Learn how you can achieve the insight and agility you need to gain a competitive advantage. Industry-acclaimed CTO and cloud expert, Shankar Kalyana presents. Only the most exceptional IBMers are appointed with the rare distinction of IBM Fellow, the highest technical honor in the company. Shankar has also receive...
DXWorldEXPO LLC announced today that ICOHOLDER named "Media Sponsor" of Miami Blockchain Event by FinTechEXPO. ICOHOLDER gives detailed information and help the community to invest in the trusty projects. Miami Blockchain Event by FinTechEXPO has opened its Call for Papers. The two-day event will present 20 top Blockchain experts. All speaking inquiries which covers the following information can be submitted by email to [email protected] Miami Blockchain Event by FinTechEXPOalso offers sp...