Beyond Objects: Component Technology Bina Ramamurthy 5/28/2016

advertisement
Beyond Objects: Component
Technology
Bina Ramamurthy
5/28/2016
B.Ramamurthy
1
Introduction
Issues: Basic object-technology could not
fulfill the promises such as reusability and
interoperability fully in the context internet
and enterprise level applications. Deployment
was still a major problem and as a result
portability and mobility are impaired.
Does component technology address these
issues and other associated issues???
5/28/2016
B.Ramamurthy
2
Component Technology
We need an application architecture that works well in the new
E-commerce age.
Programmer productivity, cost-effective deployment, rapid time
to market, seamless integration, application portability,
scalability, security are some of the challenges that component
technology tries to address head on.
Enterprise Java Beans is Sun’s server component model that
provides portability across application servers, and supports
complex systems features such as transactions, security, etc. on
behalf of the application components.
EJB is a specification provided by Sun and many third party
vendors have products compliant with this specification: BEA
systems, IONA, IBM, Oracle, Sybase, Gemstone.
5/28/2016
B.Ramamurthy
3
Two-tier applications
Presentation
Logic
Business
Logic
5/28/2016
Database
Server
B.Ramamurthy
4
Three-tier Applications
Presentation
Logic
5/28/2016
Business
Logic
B.Ramamurthy
Database
Server
5
J2EE Application Programming Model
for Web-based applications
Web Service
Business Logic
Web Container
EJB container
Web
client
5/28/2016
Web
Application
Enterprise
Java Beans
B.Ramamurthy
Database
Server
6
J2EE Application Programming Model
for Three-tier Applications
Business Logic
Application
Container
Presentation
Components
5/28/2016
EJB container
Enterprise
Java Beans
B.Ramamurthy
Database
Server
7
J2EE Application Programming Model
for Web-based Applets
Browser
Applet
internet
5/28/2016
Web Service
Business Logic
Web
Container
Web
Application
EJB container
Enterprise
Java Beans
B.Ramamurthy
Database
Server
8
Roles in EJB Development
Bean developer: Develops bean component.
Application assembler: composes EJBs to form
applications
Deployer: deploys EJB applications within an
operation environment.
System administrator: Configures and administers the
EJB computing and networking infrastructure.
EJB Container Provider and EJB server provider:
Vendors specializing in low level services such as
transactions and application mgt.
5/28/2016
B.Ramamurthy
9
Enterprise Java Bean (EJB)
Deployable unit of code.
At run-time, an enterprise bean resides in an
EJB container.
An EJB container provides the deployment
environment and runtime environment for
enterprise beans including services such as
security, transaction, deployment,
concurrency etc.
Process of installing an EJB in a container is
called EJB deployment.
5/28/2016
B.Ramamurthy
10
Enterprise Application with
many EJBs
WebClient
EJB2
EJB1
EJB4
EJB5
EJB3
EJB6
ApplClient
Lets consider a shopping front application and figure out the
possible components (EJBs)
5/28/2016
B.Ramamurthy
11
Deployment with Multiple EJB
Clients
Web
Container1
Deploys:
WebApp1
EJB
Container1
Deploys :
EJB1,EJB2,EJB3
Client
Container1
Deploys :
Client1
5/28/2016
EJB
Container2
Deploys :
EJB4
Client
Container3
Deploys :
EJB5,EJB6
B.Ramamurthy
12
Business Entities, Processes
and Rules
EJB Applications organize business rules into
components.
Components typically represent a business
entity or business process.
Entity: is an object representing some
information maintained in the enterprise. Has
a “state” which may be persistent.
Example: Customer, Order, Employee,
Relationships are defined among the entities:
dependencies.
5/28/2016
B.Ramamurthy
13
Process
Is an object that typically encapsulates an interaction
of a user with business entities.
A process typically updated and changes the state of
the entities.
A business process may have its own state which
may exist only for the duration of the process; at the
completion of the process the state ceases to exist.
Process state may be transient or persistent.
States ate transient for conversational processes and
persistent for collaborative processes.
5/28/2016
B.Ramamurthy
14
Rules
Rules that apply to the state of an
entity should be implemented in the
component that represents the entity.
Rules that apply to the processes
should be implemented in the
component that represents the
processes.
5/28/2016
B.Ramamurthy
15
EJB Types
There are two types of EJBs:
Entity and Session
The syntax of the session bean and entity
bean client-view API is almost identical.
But they have different life cycle, different
persistence management, etc.
Among the the two types: There can be
stateless and stateful beans.
5/28/2016
B.Ramamurthy
16
Life Cycle Differences
Session Bean
Entity Bean
Object state:
Maintained by container
Object Sharing:
No sharing: per client
State Externalization:
State is inaccessible to other
programs
Transactions:
Not recoverable
Failure Recovery:
Not guaranteed to survive failures
5/28/2016
Maintained by DB
Shared by multiple client
Accessible to other programs
State changed transactionally and
is recoverable.
Survives failures and restored when
the container restarts.
B.Ramamurthy
17
Choosing Entity or Session
Bean
Entity (business entity) is typically implemented as
entity bean or a dependent object of an entity bean.
Conversational (business) process as a session bean.
Collaborative bean as an entity bean.
Any process that requires persistence is implemented
as an entity bean.
When exposure to other applications are not needed
for an entity or process (local/private process) then
they are implemented as bean dependent objects.
5/28/2016
B.Ramamurthy
18
Download