|
The Process
In the previous article of this series, we have outlined
guidelines on identifying the reusable business processes across
the organizations boundary. The outcome of this process can lead
to the basic building blocks or Components that co-exist within
an organization and perform one or more business operations.
- Component Specification: In a technology neutral way like
UML define the business functions. This must be technology
independent. This just specifies what the interfaces are that
the Component offers and what the Component dependencies are.
- Interface Definition: Translation of the Functional
Specification in a target platform language in a technology
neutral way. For example, the interfaces can be elaborated using
UML and translated into a programming language of choice such as
Java.
- Service Specification: Subscribing to 1..* functional
interfaces. Services can collate multiple Component interfaces
to provide a coarse-grained Service Definition. Again, this
needs to be technology neutral.
- Service Discovery and Registry: A mechanism for Registering
Services to a registry. The Consumers use a Service Discovery
mechanism and access the Services by looking up in the registry.
- Technology binding: Consumer Components are inherently
technology independent. We need to plug-in a technology binding
mechanism to use a certain kind of interface exposed by the
Service provider and its runtime instance technology. For
example, we need to plug-in a technology layer into the Service
Consumer to access a Service by using EJB or by using Web
Service mechanism as is appropriate. We will elaborate on this
later in this article.
The following small example will clear the clouds. Let us assume
that in a company we are to write a Payroll Management System
which manages the Employee payroll records and posts the pay-
slips to their home addresses using the Address manager
component. Also there is another Component which looks after the
employee welfare and sends out a gift check on the anniversary
or birthdays of employees.
The component specification of the above components can be shown as
in Figure-1.
Figure-1 The Component Specification
Let us consider that we might want to offer a Service at a
higher level called the “EmployeeService”, which can subscribe
to both the Payroll Management and Welfare Management
interfaces. The Service Definition for the EmployeeService might
look like the following in Figure-2.
Figure-2 The Service Specification
The interface definitions are still technology independent but
can be translated in to a specific programming language such as
Java. For example, the interface definition for the
EmployeeService can look like the following in Java (Listing -
1). We have omitted the data type references from the diagram
for simplicity
public interface IEmployeeManger {
void sendPayslip(IEmployee employee, IDocument payslip)
throws EmployeeNotFoundException,
ServiceUnavailableException;
void sendGiftCheck(IEmployee employee, IDocument check) throw
EmployeeNotFoundException,ServiceUnavailableException;
}
Listing-1 the interface definition(there were two line
breaks added to make it fit the page)
Note: The Exceptions listed above are very much application
specific exceptions and avoid any technology specific
exceptions.
New on the Java Boutique:
New Review:
Time Management Made Easy with the Quartz Enterprise Job Scheduler
Why not just use the Java timer API? This open source scheduling
API boasts simplicity, ease-of-integration, a well-rounded feature
set, and it's free!
New Applet:
Reverse Complement
Reverse Complement is a simple applet that converts DNA or RNA
sequences into three useful formats.
Elsewhere on internet.com:
WebDeveloper Java
Lots of Java information on webdeveloper.com
WDVL Java
Thorough Java resource at the Web Developer's Virtual Library.
ScriptSearch Java
Hundreds of free Java code files to download.
jGuru: Your View of the Java Universe
Customizable portal with online training, FAQs, regular news updates, and tutorials.
|