-
-
nFrame,
a J2EE-based fully customizable and extensible multi-tier enterprise application
framework, allows enterprises to concentrate on enterprise-specific business
domains and problems. Most of the application infrastructure details and common
tasks are accomplished by nFrame.
nFrame
utilizes the platform-indendence and vendor-neutral power of J2EE and XML. It
provides the architectural and performance optimization by employing the true
power of Object-Orientation (abstraction, encapsulation, polymorphism, etc.),
O-O design patterns [G41995], MVC (model-view-controller) [KP1988] design pattern,
and J2EE design patterns [Alur2001].
Features
- Utilizes
the advantage and feature of J2EE platform.
- Provides
abstraction and modularity allowing applications to be better scalable, flexible,
and reusable. It localizes disparate logics to achieve modularity.
- Provides
enhanced level of decoupling for reusability. Decoupling minimizes duplication
of control logic, and is accomplished by separating tier specific implementation
and using patterns such as Front Controller, Business Delegate, and Session
Facade.
- Provides
capability to monitor client requests. This allows application to detect duplicate
requests from a web-based client and restricting a particular client request.
- Provides
persistence independence to withstand minor persistence format changes and
to be vendor-independent.
- Provides
mechanism of session bean facade to hold client-specific business logic, business
rules, and workflow. A session facade provides business service interface
from one or more entity beans to clients. This arrangement improves performance
and reduces the number of objects in the business logic layer of the application
architecture.
- With
its high abstraction capability, nFrame provides
flexibility in implementing component with desired granularity.
Architecture
The high-level architecture of nFrame
shows the judicious use of J2EE design patterns to make nFrame
customizable, flexible, and extensible. Each of its top-level component provides
a rich set of functionality which most of the enterprise applications need to
consider and perform to make them usable. One of main objective of this architecture
is to optimize the application performance by proper task categorization and
delegation, and minimization of network traffic by providing information processing
at more appropriate stage of the information life-cycle in the application.

- Client
- This
is a generic client for an application built using nFrame.
It can be any types including, but not limited to, web-based client, application
client, mobile device based client, and IVR.
- Intercepting
Filter
- A
number of tasks need to be accomplished before the execution of actual transactions
by any application. Such preliminary tasks include client authentication and
authorization, session validation, verification and validation of client IP
address and corresponding network, encrypting and decrypting of client data,
compressing and uncompressing data between client and service provider, validation
of client browser type, image conversion, message conversion, and a host of
other configurable item. These tasks can be intercepted from the client and
appropriate filter can be invoked to execute the task, saving a trip to the
server side.
-
- Filters
promote cleaner application partitioning and encourages reuse. It provides
flexible configuration for an application by having the ability to combine
numerous independent services in varying permutations without writing or modifying
any code.
- Controller
- All
client requests needing services from the backend system interact with this
component - making it the single point of contact for clients. After receiving
a client request, the Controller delegates it to a proper component. Controller
utilizes the Service-To-Worker component for content management of the client
request.
- Business
Delegate
- Business
Delegate component serves client request by looking up appropriate business
services, creating them if necessary, and using the business service method.
It can also cache the results and references to remote business services,
improving the overall performance of the application. It is also responsible
for translating any network or other infrastructure related exceptions into
business exceptions, shielding clients from knowledge of underlying implementation
specifics.
- Service
Locator
- Service
Locator abstracts all JNDI usage and hides the complexities of initial context
creation and other life-cycle management tasks for EJB and JMS components.
Multiple clients can reuse the component to reduce the code complexities.
It supports both point-to-point (using JMS Queue) and public/subscribe (using
JMS Topic) messaging for communications.
-
- The
clients are not involved in JNDI lookup, the service locator aggregates the
network calls required to lookup and create business objects. It also facilitates
addition of new business components without impacting clients.
-
- Session
Facade
- It
manages the relationships between numerous business service components and
provides a higher level of abstraction to its client. The inter-business object
interactions are abstracted into a workflow providing better manageability,
flexibility, and ability to cope with ongoing changes. It reduces the coupling
and client's dependency on the business objects. Session Facade reduces the
network overhead between the client and the server by eliminating the direct
interactions amongst client, business data, business service objects. Its
coarse-grained nature makes it easier and better manageable to define security
policies at this level rather than at the participating business component
level. Similar advantages are achieved in transaction management.
References
-
| Alur2001 |
Deepak Alur, John Crupi, Dan Malks,
"Core J2EE Patterns: Best Practices and Design Strategies",
Sun Microsystems Press, 2001. |
| G41995 |
Erich Gamma, Richard Helm, Ralph Johnson,
John Vlissides, "Design Patterns: Elements of Reusable Object-Oriented
Software", Addison-Wesley Publishing Company, 1995. |
| KP1988 |
Krasner, G.E. and Pope, S.T. (1988)
A Cookbook for using the Model-View-Controller User Interface Paradigm
in Smalltalk-80. JOOP, Aug/Sep 1988, pp. 29-49. |
-
- For more Information
on nFrame, please call our Business Solutions
Line (703.597.9063) or send email to our sales
team.