|
This site is dedicated to the
Ubiquitous Component Developer...
|
|
|
|
Gopalan
Suresh Raj's
|
Web Cornucopia© |
An Oasis for the parched
Enterprise Component Engineer/Developer |
|
|
Site
Index / Site Map / What's New
The
easiest way to get to most of the articles on
this site. Retrace the links...
|
The
Productivity Environment for Java
(PE:J)
Take a look at the product
that we'd been working on since July 2001 - It's a
Productivity Environment for Java (PE:J) ...
|
With Dr. James Gosling
Click Here to
see yours truly with Dr. James Gosling the creator of The
Java Programming Language ...
|
Java Data Objects
(JDO)
Check out my Presentation for the Toronto
Java User's Group on PE:J and JDO ...
|
The Advanced
C#/.NET Tutorial
This section contains a tutorial to
Advanced C#/.NET topics...
|
The
Advanced Java/J2EE Tutorial
This section contains a
tutorial to Advanced Java topics like Enterprise
JavaBeans, Jini, Java/RMI, JMS, JTS/JTA,
JavaBeans, Network programming, Concurrency
issues, and a lot more...
|
The
COM+/DNA Tutorial
This section contains a tutorial to
Advanced COM topics like DCOM, MTS, MSMQ, COM+
and a lot more...
|
The
CORBA Tutorial
This
section contains a tutorial to CORBA covering
topics like Stringification, Common Object
Services (COS) like Naming, Event, Trader,
Transaction, etc., and a lot more...
|
Viewpoint
Each man
is entitled to his opinion. A case in point. This
is what I feel about...
|
Read
about my latest book on The Java Message Service ...
Professional JMS ...
Visit
now and for FREE,
* Download entire code
* Read my Sample Chapter
|
Read
about my previous book here...
Enterprise
Java Computing- Applications and Architecture ...
|
Click to subscribe to The Web Cornucopia Mailing List
Get FREE notification of any changes to this site.
|
Visit
my DISTRIBUTED COMPUTING online discussion forum
Discuss COM+/DNA
and all its related technologies, CORBA
and all its related technologies, JAVA 2
Enterprise Edition (J2EE) and all its
related technologies, Design Patterns,
Enterprise Solutions, Message Oriented Middleware
(MOM), Transaction Processing Monitors, and
Parallel Architectures....
|
|
The
Book Gallery
In this
section I have only included those books that I
feel are actually worth the asking price...
|
Lean
Manufacturing
Machine Systems
Read all about my latest
tryst with Jini, EJB and Java Communications API
and how to bring push technology to the plant
floor...
If you are really interested in learning more
about this project, please send in a
note to me or to Prof. Dr.
Satish Bukkapatnam of USC.
|
Read about this at
Microsoft's site
Read all
about Microsoft's 'Universal Plug and Play' here... This is
Microsoft's answer to Sun's Jini Connection
Technology.
|
Read about this at Sun's
site
What
JavaSpaces is all about.
|
Other Trivia
How you
convert your existing ActiveX control to a
JavaBean and...
|
Other Links
Generic Links...
Java Links...
COM Links...
CORBA Links...
|
Emerging Technologies For eCommerce
An
Overview...
|
|
|
|
Welcome
to the World of Distributed Components...
Microsoft is promoting its
.NET Framework which will supplant its
Distributed
interNet
Applications
Architecture (DNA) as a
platform for developing fully distributed
enterprise applications.
While Microsoft today is a one-stop
shop for a viable set of distributed object
application tools, Sun's JavaSoft has created an
environment where an industry of third-party
distributed tools-and-platforms have started to
flourish.
JavaSoft is promoting its Java
2, Enterprise Edition (J2EE) as a core technology for
developing multi-tier distributed applications.
Join me in my quest to make this
site THE ULTIMATE RESOURCE to learn
everything about COM+ and all
its related technologies, JAVA and all
its related technologies, CORBA and all
its related technologies,
.NET and all
its related technologies, Visual
C#, Visual J#, Visual C++ & MFC, Visual
J++ & WFC, Win32 Systems
Programming, Design Patterns, Enterprise
Solutions, Transaction Processing Monitors,
Message Oriented Middleware,
Transparent Persistence,
Persistence by
Reacheability,
Object to Relational
Mapping (O/R Mapping), and Parallel
Architectures.
- Gopalan
Suresh Raj
|
|
|
Middleware
Component Models -
CCM, EJB, COM+/MTS
|
Middleware components run within a controlled
runtime environment provided by
the server vendor which manages their creation,
management, and destruction. The middleware component
developer no longer needs to write code that handles
transactional behavior, security, database connection
pooling or threading, because the architecture delegates this task to
the server vendor...
Enterprise
JavaBeans (EJB) provides a
fully-scalable, distributed, and cross-platform
architecture that makes the most of your business
resources. Not only can these components run on any
platform, but they are also completely portable
across any vendor's EJB component execution system.
The EJB environment automatically maps the component
to the underlying vendor-specific execution services. Let me show
you how to build EJB server-side business object
components.
Microsoft
Transaction Server (MTS) is built on DCOM and brings in
mainframe-like transactional reliability to the PC
world following a "write once, run many"
strategy. Developers use MTS to deploy scalable server
applications built from COM components, focusing on
solving business problems instead of on the
programming application infrastructure. MTS delivers
the "plumbing" including
transactions, scalability services, database
connection management, and point-and-click
administration providing developers with the
easiest way to build and deploy scalable server
applications for business and the Internet. Let me show
you how to build Transaction Server business object
components.
Component Object Model + (COM+) is the latest version of MTS. Collectively, the
services that support COM and .NET component-based applications are
known as COM+ Component Services, or simply as COM+. The most
important services provided by COM+ deal with Administration,
Just-in-Time Activation (JITA), Object Pooling, Transactions,
Synchronization, Security, Queued Components, and Events.
Let me show
you how to build Transaction Server business object
components.
CORBA Component Model
(CCM) is a specification that
focuses on the strength of CORBA as a server-side
object model. It concentrates on issues that must be
addressed to provide a complete Server side
middleware component model. It can be described as a
cross platform, cross language superset of EJB. The
CCM gives developers the ability to quickly build web-enabled
enterprise scale e-commerce applications while
leveraging the industrial strength of CORBA. Tight
integration with EJB leverages CORBA's cross-platform
and multiple-language capabilities. Let me show
you how to build CCM business object components.
As the
middleware war heats up between Microsoft, JavaSoft
and the OMG, the providers of the three most popular
distributed object technologies, let us look at
a detailed comparison of
the EJB and MTS models. Let us
examine the differences between these models (with a
concrete code example) from a programmer's standpoint
and an architectural standpoint. At the end of this
article, you will be able to better appreciate the
merits and innards of each of these middleware
component paradigms.
This
comparison is based on the following criteria: Instance
and Life cycle Management, Database
Connection Pooling, Architecture,
Distributed Transaction Support, Distributed
Transaction Services, Support for
Transactions, Component Types,
Portability, Interoperability,
State Management, Persistence
Management, Resource Management,
Security, and Deployment.
It ends with a detailed source code
comparison of a full-fledged MTS and EJB
component.
(PS:
I am still receiving excellent comments and suggestions on
this article).
|
Middleware
Remoting Technologies -
DCOM, Java/RMI
and CORBA
|
Software
Reuseablity is a major goal of software
engineering. Good Object-Oriented systems ensure this
through Inheritance and Encapsulation.
Microsoft tries to move reusability
from the source code realm into the binary realm. COM, OLE, ActiveX, DCOM, COM+ -you can
call it anything- are all Microsoft's solutions to
smooth out the edges and ensure that data sharing at
the binary level, takes place in a consistent manner.
Explore this world with me as I rave and
rant about these ActiveX/COM technologies...
Javasoft's Java/RMI ensures communication between
distributed program-level Java objects residing in
different address spaces by assuming a homogeneous
Java Virtual Machine environment. It thus takes
advantage of the Java Object Model whenever possible
to support distributed objects in the Java
environment. Let's uncover
this wonderful world and experience first-hand how
Java/RMI ensures seamless integration with other Java
object systems...
OMG's CORBA is a structural architecture
designed to support heterogeneous object systems.
CORBA achieves communication between different
distributed objects while still allowing
encapsulation and hiding of the internal object
structure from external objects through Indirection. Let me show
you how it uses Indirection efficiently to achieve encapsulation
preventing systematic recompilation.
As the
middleware war heats up between Microsoft, OMG and
JavaSoft, the providers of the three most popular
distributed object technologies, let us look at a detailed comparison of
CORBA,
DCOM and Java/RMI. Let us examine the
differences between these three models (with a
concrete code example) from a programmer's standpoint
and an architectural standpoint. At the end of this
article, you will be able to better appreciate the
merits and innards of each of these distributed
object paradigms.
(PS:
I am still receiving excellent comments and
suggestions on this article).
Bridging DCOM and CORBA
|
Transparent Persistence, O/R
Mapping -
Java Data Objects (JDO), and
Microsoft ObjectSpaces
|
Solving the
impedance
mismatch between an Object Model
that was
developed independently from a Data Model is a matter of concern,
and happens far too often in Enterprise Application projects.
Transparent Persistence,
Persistence By
Reachability,
Lazy Data Loading, and Object to
Relational Mapping
(O/R Mapping) are highly desirable features in every application
which gets its data from some data source (be it from an RDBMS, or
from an ODBMS, or even from XML/Text Files).
Java Data Objects (JDO) provides for interface-based definitions of
data stores and transactions. It also provides for selection and
transformation of persistent storage data into native Java
programming language objects. It provides for a standard way to
store Java objects persistently in transactional data stores.
Furthermore, it standardizes on a way to treat relational database
data as Java objects, and defines transactional semantics associated
with those objects. You use the JDO Query Language (JDOQL) to
write queries that uses conventional Java operators.
Click here to
see my latest forays into this wonderful technology from Sun...
Microsoft ObjectSpaces (MS OS) lets you expose database or XML data as
persistent objects and lists of objects instead of tables, columns,
and rows, or XML elements. MS ObjectSpaces provides a protective
transactional business logic layer for your source data layered on
top of ADO.NET. You use the Object Query Language (OPath) to write
queries that use conventional C# operators. OPath also handles
updates to the source database or XML document and supports
transactions. The Microsoft XML Web Services Toolkit includes a
Technology Preview of the ObjectSpaces library and ObjectSpace
Mapping Tools for Microsoft's .NET Framework.
Click here to see
my latest forays into this wonderful technology from
Microsoft...
|
Message
Oriented Middleware (MOM)
|
The
Java Message Service (JMS) API combines Java technology
with enterprise messaging. Enterprise messaging
provides a reliable, flexible service for the
asynchronous exchange of critical business data and
events throughout an enterprise. The JMS API adds to
this a common API and provider framework that enables
the development of portable, message based
applications in the Java programming language. Let me show
you how to build reliable messaging into your
enterprise Java applications.
The
Microsoft Message Queue Server (MSMQ) guarantees a simple, reliable
and scalable means of asynchronous communication
freeing up client apps to do other tasks without
waiting for a response from the other end.It provides
loosely-coupled and reliable network communications
services based on a messaging queuing model. MSMQ
makes it easy to integrate applications, implement a
push-style business event delivery environment
between applications, and build reliable applications
that work over unreliable but cost-effective networks.
Let me walk
you through this technology from Microsoft which was
code-named the Falcon
IBM's
MQSeries has, over the years, earned an
industry-leading reputation by providing highly
reliable, asynchronous communications functions for
application-to-application connection and has become
essential to enterprise messaging. It provides an
open, scalable, industrial-strength messaging and
information infrastructure, enabling enterprises and
beyond to integrate business processes. Let me show
you how to build reliable messaging into your
enterprise applications using IBM's MQSeries.
|
The .NET Framework, C# and
related technologies...
|
According to Microsoft,
C#
(pronounced C Sharp)
provides programmers with rapid development, combined with the power to access all the functionality of the underlying platform without sacrificing the power and control that have been the hallmark of C and C++. It provides an environment that is completely in sync with emerging Web standards and one that provides easy integration with existing COM applications. Additionally, it allows the ability to code at a low level if and when the need arises.
Click here to
see my latest forays into this wonderful language from Microsoft...
Also read about my
Sixty (60) Tips to
Effective C# Code Development ...
|
Java and related
technologies
|
Javasoft
describes Java as "A Simple, Object
Oriented, distributed, interpreted, robust, secure,
architecture neutral, portable, high-performance,
multithreaded and dynamic language". JavaBeans is the specification for
building reusable software components using Java.
Javasoft has also released the InfoBus specification for Beans. Click here to
see how I use these technologies in my projects...
While both
JavaBeans and Enterprise JavaBeans are software
component models, the purpose for which they are
designed is different. However, a common
misconception is that an Enterprise JavaBean is an
extension of plain vanilla JavaBeans with
enterprise functionality. JavaBeans is a general-purpose
component model whereas EJB, as the name suggests, is
a middleware component model. We'll use these
principles and the basic characteristics of software
components to
compare JavaBeans and Enterprise
JavaBeans. (Published in the August
1999 issue of the Java Developers' Journal - JDJ
Feature pp.22-30.)
Visual
J++
is a pretty cool development system from Microsoft.
Microsoft's Visual
J++ ver 6.0 is now 100 percent JDK 1.1
compliant (even supports JNI). It
provides amazingly superior support for Enterprise
Application development and it ships with excellent
COM programming support, WFC, ActiveX-Bean
integration tools, J/Direct and a whole slew of cool
interesting tools. I will do my best to give you an insight into
how you can program using these libraries and tools.
|
Java Server Pages (JSP),
the Servlets API and the JavaMail API
|
The
Java Server Pages (JSP) Technology and the Java
Servlet API, along with the Java
Mail API provide an excellent
framework for developing Web Based Email Applications.
The Model 2 JSP Architecture lends a good Model-View-Controller
Based design to architect your next Web-Based project.
Click here
and I will explain how to build a Web Based Email
Service using the Java Mail API, Java Server Pages
Technology and the Servlet API...
|
Jini Technology
|
Sun Microsystems' Jini Connection
Technology enables the
building and deployment of distributed systems that
are organized as "federations of services."
A federation is a set of services that can work
together to perform a task. A service, the
fundamental unit of a federation, is an entity that
sits on the network ready to perform some kind of
useful function. A service can be anything -- a
hardware device, a piece of software or a
communications channel. Once a service becomes part
of a federation, it then can be used by all its
client programs, other services, or users. Click here
and I will explain how to build Jini services &
clients and why I am so excited about this wonderful
technology from Sun...
|
Design Patterns
|
One of the most important tasks in any
project life-cycle is the Design. A good design
contributes a lot to the success of every project.
Good Design Patterns have the potential to
permanently alter the software engineering field,
catapulting it into the realm of true elegant design.
Join me as I walk you through my view of this world
of Creational
Patterns, Structural
Patterns and
Behavorial
Patterns
|
Win32 Systems
Programming, Visual C++ and MFC
|
Visual
C++
is Microsoft's flagship product for C++. It's class
library MFC provides an Object-Oriented
interface to the Windows OS. Windows 98 and NT are their flagship Operating Systems.
In this section you can find my Win32 articles on developing NT Services, Named pipes, memory mapped
I/O, Winsock Multithreading
issues, thunking and a whole bunch of stuff
useful for the systems programmer...
|
|
Best viewed
with
|
This site was developed and is maintained
by Gopalan Suresh Raj
You are visitor number
since January 1,1999.
|
Last Updated: Dec 21,2001 |
.
If you have any
questions, comments, or problems regarding this site,
please write to me I would love to hear from you.
|