V615 - PowerPoint PPT Presentation

1 / 102
About This Presentation
Title:

V615

Description:

Sharing between Verticals. BO Layer - Overview. BO Dispatcher (BOD) - only point of entry ... 'Real Time Usage' Query. Seldom Used - Doesn't Scale. Asynchronous ... – PowerPoint PPT presentation

Number of Views:23
Avg rating:3.0/5.0
Slides: 103
Provided by: reeds4
Category:
Tags: pattern | provided | v615

less

Transcript and Presenter's Notes

Title: V615


1
V615CeBS 1.x - Detailed Architecture
  • Reed Shilts
  • reed.shilts_at_sybase.com

2
Topics
  • Onion Model - Same Topics in More and More Depth
  • What Is CeBS?
  • Architecture Overview
  • Overall, UI, Business Objects, EAI Connectivity
  • Architecture Implementation Details
  • UI goto V616 - UI Framework
  • Framework Support, Business Object Layer, etc
  • A Vertical In Detail

3
CeBS
  • Communications
  • eBusiness
  • Solution
  • Pronounced See-Biz

4
What Is CeBS
  • Open Framework For Customer Self Service for use
    by Telecommunication Carriers and Resellers
  • Telco Business Process Aware
  • Framework - More Than An Application
  • Application - More Than a Framework
  • Useful Working Reference Implementation (Sample)
  • Works Right Out Of The Box

5
Goals of CeBS
  • Designed to be customized
  • EAI to Legacy Systems
  • Integration with Data Warehousing for Mining
  • Security Security Security
  • Enable Collaboration
  • Useful Working Reference Implementation (Sample)
  • Works Right Out Of The Box

6
Reference Implementation(sample)
  • SybTel
  • The fictitious telecommunications provider.
  • This provides the web front end for legacy
    systems
  • The source code is provided.
  • English, Spanish, and Chinese

7
User View of the Reference Implementation
8
CeBS 1.x Implementation
  • J2EE Application Using
  • Apache / iPlanet - Web Server
  • EAServer - JSP (presentation)
  • EAServer - EJB (business logic)
  • EAServer - EAI (connectors listeners)
  • ASE - local customer database
  • ASE-IQ - data warehouse

9
CeBS Implementation
  • Framework for Snap-ins
  • All the framework work is finished
  • Table Driven Configuration using XML Glue
  • Authentication Authorization
  • Not industry specific
  • Role Based Security
  • Vertical Business-Centric
  • Telco industry specific

10
CeBS Implementation - Framework
  • Framework for Snap-Ins with built in
  • User Management, Authentication, and
    Authorization
  • HTML Based UI Framework (MVC Pattern)
  • Business Object Dispatcher Pattern
  • EAI Dispatcher Pattern
  • EAI Listener Pattern
  • Fine Grained Feature Licensing
  • Uniform N-Tier Logging Throughout
  • Administration and Monitoring Tools

11
CeBS Implementation - Open Architecture
  • Designed to be Extended
  • Designed to be Customized
  • ALL of the Sample JSP sources are shipped
  • Fully Documented APIs XML for
  • In-Bound - business object dispatcher
  • Out-Bound - BOS (EAI) dispatcher
  • Business and Data Access Objects
  • Connector, EJB, JSP, other Configuration
  • Extensive docs to EXTEND the existing application.

12
CeBS 1.x Architecture Overview
13
Architecture - 10,000 Foot View
SOAP
WML
HTML
HTTPS
User Interface Layer
Public API Dispatcher Pattern
User Mgmt Authorization
Trouble Ticket
Bill View
Shopping Cart
Product Catalog
Order Entry
Bill Analysis
Message Center
Retailer Info
Etc...
EAI Dispatcher Pattern
EAI Listeners
EAI Connectors
14
Simplified Activity DiagramShowing Overall
Control Flow
User Interface
Public API
Business Objects
EAI Dispatcher Adapters
15
Control Flow Overview -User Submits
RequestServlets Translate to XML Request
16
Business Object Dispatcher (BOD)Validates the
XML Request
17
BOD Forwards to Correct EJB
18
BOD Forwards to Correct EJBWork Happens
19
EJB Forwards to BOS Dispatcher
20
BOS Dispatcher EnQueues Request
21
Later - DeQueue and Send to Connector - which
Sends to BSS
22
Later.Listener Receives Asynch Message
23
Listener Sends to BODJust like Any Other
Request
24
Architecture OverviewUser Interface Layer
  • HTML, JSPs, Servlets

25
Context.
User Interface
Public API
Business Objects
EAI Dispatcher Adapters
26
UI Layer - Philosophy
  • Provide a Reference Implementation.
  • Programmable by HTML Designers.
  • Details are hidden in servlets which look like
    HTML tags.
  • Allow 3rd Party Tag Libraries.
  • Enable I18N and L10N (even a Chinese sample!)
  • Not Just HTML - Future plans for WAP, Voice,
  • Not Just User - Future plans for WebServices
    (SOAP)

27
UI Layer - OverviewModel - View - Controller
JSPs
Tags
Action Engine
Data Beans
Actions
Business Object Dispatcher (BOD) Gateway to
EJBs
28
UI Layer - Extending
  • Adding A New Vertical System
  • Write JSPs (using our tags) LIKE HTML
  • Write Actions (for MVC)
  • Add the mapping to ONE XML file
  • Done

29
UI LayerFramework Details
  • Refer to
  • V616 CeBS UI Framework Overview
  • Time 330 pm
  • Date Thursday
  • Location

30
Architecture OverviewBusiness Object Layer
  • EJB Logic

31
Context.
User Interface
Public API
Business Objects
EAI Dispatcher Adapters
32
BO Layer - Overview
  • Delegation Pattern, Factory Pattern
  • Easy To Extend
  • Customer Information Database (CID)
  • Local cache for Performance and Uniform View
  • Company, User, Account Mapping
  • Order, Product, Trouble Ticket History linked to
    BOS
  • XML throughout
  • Sharing between Verticals

33
BO Layer - Overview
  • BO Dispatcher (BOD) - only point of entry
  • Converts XML to a binary tree (JDOM)
  • Layer of User Level Security Access Authorization
  • Table Driven for easy customization
  • Stateless Session Beans Throughout
  • Where the Business Logic Happens
  • Access to database (CID)
  • When Processed - forward to BOS Dispatcher
  • Some Entity Beans - Complex database relationships

34
BO Layer - Extending
  • All Business Logic can be SubClassed
  • The Custom EJB can subclass or even delegate to
    our EJBs.
  • The Database CAN be Extended
  • Samples Provided

35
BO Layer - Extending
  • Adding A New Vertical System
  • Write your own EJBs or extend ours
  • Write a task for the BOD
  • Add the mapping to ONE XML file
  • Done
  • Bill Analysis Is PROOF - Implemented by B.I.
    Division

36
Architecture OverviewBack Office System (BOS)
Adapter Layer
  • Back Office Integration

37
Context.
User Interface
Public API
Business Objects
EAI Dispatcher Adapters
38
BOS Layer - Overview
  • Generic Talks to multiple BSS
  • Decoupled from rest of CeBS
  • XML based Messages
  • Delegation Pattern, Factory Pattern
  • Easy To Extend
  • Table Driven and Table Configured
  • Base Classes Provided
  • Numerous Samples Provided

39
BOS Layer - Overview
  • Synchronous
  • Real Time Usage Query
  • Seldom Used - Doesnt Scale
  • Asynchronous
  • Typical UseTrue Real Time Response Typically Not
    Needed...
  • Store and Forward Queue
  • Any Technology - JMS, MQ, TIBCO, CORBA, JDBC

40
What are adapters
  • Critical integration software for communication
    between CeBS and existing backoffice systems
  • Connectors are responsible outbound messages
  • Listeners are responsible for inbound messages
  • Connectors and Listeners are collectively called
    adapters

41
BOS Layer - Extending
  • Base Classes Provided
  • Samples Provided (JMS, MQ, TIBCO, Calculus
    Opera, Ericsson Progressor, Synthetic BSS)
  • Write your connector
  • Write your Listener
  • Add the mappings to TWO XML files
  • Done

42
CeBS Architecture Details
43
CeBS Architecture DetailsTopics
  • User Interface
  • Support Subsystems in the Framework
  • Business Object Dispatcher (BOD)
  • Business Objects
  • Back Office Dispatcher (BOSD)
  • Security
  • Trouble Ticket Vertical in Detail

44
CeBS Typical Activity Flow...New Trouble Ticket
  • Business Process Vertical
  • User Action - Create/Edit a Trouble TicketUI
    (JSP) ? Data Beans Action ? BOD ? BOD Task ?
    EJB ? BOSD ? Connector ? BOS
  • Process Notification (Asynch from BOS)BOS ?
    Listener ? BOD ? PNTask ? EJB

45
CeBS Architecture DetailsUser Interface Layer
46
CeBS User Interface Layer
  • Refer to
  • V616 CeBS UI Framework Overview
  • Time 330 pm
  • Date Thursday
  • Location

47
CeBS Architecture DetailsSupport Subsystems in
the Framework
48
Support Subsystems(horizontal)
  • Customer Information Database (CID)
  • Database and other helpers
  • Security
  • Customer Portfolio
  • Session Management
  • User Management
  • Message Center

49
Support Subsystems(horizontal)
  • BOD Dispatcher - Outside World Access Point
    (incoming)
  • BOS Dispatcher - Telco BSS Access Point
    (outgoing)
  • System Management
  • All are EJBs or Service Components or Simple
    Classes, Available to All Callers

50
CeBS Architecture DetailsBusiness Object
Dispatcher (BOD)
  • Gateway To The EJBs
  • Only External API

51
Context.
User Interface
Public API
Business Objects
EAI Dispatcher Adapters
52
Business Object Dispatcher (BOD)Gateway to the
EJBs
  • Single Point of Entry to CeBS LogicString
    dispatch(String strRequest)
  • XML IN and OUT
  • Calls Worker Tasks Which Call Specific EJBs
  • Table Driven Dispatcher Pattern
  • Primary Wall of Security
  • Rule - cannot trust anything beyond the BOD
  • Rule - cannot trust the XML payload

53
BODDispatch(..) 1/2Work Performed...
  • Separate Off UserContext into JDOM Element
  • Who Is Making the Call
  • On Behalf Of Whom
  • Separate Work Elements into JDOM Element(s)
  • 1..N Units Of Work
  • Next Slide ...

54
BODDispatch(..) 2/2Work Performed...
  • .
  • Perform The Work (Task)
  • Table Lookup for Dynamic Task Class
  • Call The TaskMyTask.exec(UserContext,
    JDOMElement)
  • Format Returned JDOM Element to an XML String
  • XML Details Next
  • Then Task Detailed...

55
BOD - XML In
  • Pass it XML describing what you would like done.
  • lt?xml version"1.0" encoding"UTF-8"?gt
  • ltVPgt
  • ltUserContext SessionHandle"UflX8ssU3Bv/8rjX0Eg
    "/gt
  • ltTroubleTicketgt
  • ltTicketViewFilter WorkID"1" RowCount25"gt
  • ltTerminal ConditionNum"1" /gt
  • ltStatementgtUserIDlt/Statementgt
  • lt/TicketViewFiltergt
  • lt/TroubleTicketgt
  • lt/VPgt

56
BOD - XML Returned
  • ltVPgt
  • ltTroubleTicketgt
  • ltTicketView TotalRowCount"2" WorkID"1"gt
  • ltTicket TicketID"5
  • Number"VPTT0000001114" StatusCode"107"gt
  • . . . .
  • lt/Ticketgt
  • lt/TicketViewgt
  • lt/TroubleTicketgt
  • lt/VPgt

57
BOD - XML Input Pattern 1/2The Request in
Detail
  • ltVPgt ? CeBS Root Element
  • ltUserContext SessionHandle"UflX8ssU3Bv/8rjX0Eg
    "/gt
  • ltTroubleTicketgt ? Task SubSystem Name
  • ltTicketViewFilter WorkID"1"gt ? Work Element
    - ...ViewFilter
  • ltTerminal ConditionNum"1" /gt? PayLoad...
  • ltStatementgtUserIDlt/Statementgt
  • lt/TicketViewFiltergt
  • lt/TroubleTicketgt
  • lt/VPgt

58
BOD - XML Input Pattern 2/2
  • SessionHandle is Authenticated User Instance
  • SubSystem Specifier Work Element MAY be
    a single BOD Task. Typically, a Single
    SubSystem Specific Task.
  • Work Element WorkID Identifies One of the
    Multiple Outstanding units of work.

59
BOD Dispatches To A Task
  • Task Java Class Which Calls Business Object
    EJB
  • Table Driven - tasks.xml
  • Same Logic Used by BOS Dispatcher

60
BOD Task
  • extends com.sybase.vp.bod.BaseTask
  • Entry Point public Element processTask( UserCon
    text userContext, Element taskElement )
  • Typically Calls an EJB for the Real Work
  • Task is Outside the EJB Work Transaction
  • The task Knows if the EJB Truly Succeeded

61
(No Transcript)
62
Example Task Definitionin tasks.xml
  • For Trouble Ticket View Filter...
  • lt?xml version"1.0" encoding"UTF-8"?gt
  • ltDispatchableClasses PackageName"Tasks gt
  • . . . .
  • ltDispatchableInstance
  • id"TroubleTicket.TicketViewFilter
  • JavaClass"com.sybase.vp.tt.bod.TroubleTicketTas
    k
  • Name"TicketViewFilter
  • gt
  • ltInstanceParam Name"ejbName"
    Value"TroubleTicket"/gt
  • lt/DispatchableInstancegt
  • . . .
  • lt/DispatchableClassesgt

63
Business Object Dispatcher (BOD)ReCap
  • Single Point of Entry to CeBS LogicString
    dispatch(String strRequest)
  • Primary Wall of Security
  • XML IN and OUT
  • Calls Worker Tasks Which Call Specific EJBs
  • Table Driven Dispatcher Pattern

64
Architecture DetailsBusiness Object Layer
  • Business Object EJBs

65
Context.
User Interface
Public API
Business Objects
EAI Dispatcher Adapters
66
Business Object Layer - Overview
  • Stateless Session EJBs
  • Scalability
  • Couple of Entity Beans, but they are the
    exception
  • Bean Managed Persistence
  • Data Passed Around as Binary XML (JDOM)
  • Business Needs Define the Vertical Subsystems

67
CeBS Bean Implementation Base Classes
  • VPEJB
  • Provides all the base EJB functionality
  • Provides many helper methods
  • Lazy creation of common helper beans
  • Getting a Database Connection
  • VPSessionBean (and VPEntityBean)
  • Implements javax.ejb.SessionBean (and EntityBean)
  • Provide Common Session (and Entity) Bean Methods
    and Helper Methods

68
CeBS Bean Implementation Base Classes
  • VPObject
  • Not EJB specific, a common interface
  • Defines debugging and logging features
  • VPObjectImpl
  • Not EJB specific, a common interface
  • Implements VPObjectall the debugging and logging
    features

69
Basic CeBS Class Inheritance Diagram
com.sybase.vp.lang.VPObject
CeBS base
javax.ejb
Work Bean
VPObjectImpl
extends
implements
javax.ejb.EntityBean
javax.ejb.SessionBean
VPEJB
VPSessionBean
VPEntityBean
MyWorkSessionBean
MyWorkEntityBean
70
CeBS EJB Exceptions
  • All EJBs Define Own Exceptions
  • Extend com.sybase.vp.lang.VPEJBException
  • Bit Reason Codes - Not Strings
  • Can Have Multiple Reasons For Failure
  • Internationalization
  • Easier for Callers To Handle

71
Remote Interface Pattern
  • From UI
  • First Argument is UserContext (next slide)
  • Other Argument(s) are an XML JDOM Element
  • Return an XML JDOM Element
  • From BOS
  • First Argument is VPUserID
  • Other Argument(s) are an XML JDOM Element
  • Return an XML JDOM Element

72
UserContext and UserID
  • User ID (aka VPUserID)
  • 64bit Integer Unique Identifier for Any User
  • Used Throughout the System (UI and BL)
  • When a User Logs In, This is Placed in the
    Session Information (pointed to by the Session
    Handle)

73
UserContext and UserID
  • UserContext
  • Authenticated User Information
  • UserID - the portal user manipulating the portal
    (the logged in user)
  • OnBehalfOfUserID - the portal user beneficiary of
    the work performed by the UserID(like customer
    being serviced by the CSR)

74
Business ObjectsRecap
  • Stateless Session Beans (mostly)
  • Uniform Calling Pattern
  • Called by the BOD - Not Client
  • Data Passed in Binary XML Tree (JDOM)

75
CeBS Architecture DetailsBack Office System
Dispatcher (BOSD)
  • Gateway To The EAI

76
Context.
User Interface
Public API
Business Objects
EAI Dispatcher Adapters
77
Back Office System Dispatcher (BOSD)Gateway To
The EAI (Connectors)
  • Class com.sybase.vp.bos.out.BOSDispatcher
  • Asynchronous (Fire and Forget)void postMessage(.
    . .)
  • SynchronousElement postMessage(. . .)
  • XML IN and OUT
  • Table Driven Dispatcher Pattern for Connectors
  • Details Separate Topic...

78
CeBS Architecture DetailsCeBS Security
79
CeBS SecurityConcepts
  • Authorization ! Authentication
  • Authentication - who are you
  • Authorization - can you do that

80
CeBS SecurityConcepts
  • Custom Authentication
  • Login Action Uses the CeBS CID
  • Overrides EAServer Authentication
  • Can Delegate to E-Portal or LDAP or Custom

81
CeBS SecurityConcepts
  • Custom Authorization
  • Custom Role Based Security
  • Fine Grained Control
  • Superset of E-Portal ACDB
  • Coordinated with Hierarchical Users and Accounts
  • Authorization Checking Can be one of the Most
    Lengthy Operations in CeBS...

82
CeBS SecurityRole Based
  • Typically Less Than a DOZEN Roles in a System
  • A Single Role A Set Of Capabilities for a Set
    Of SubSystems
  • A User Has a Single Role
  • Security Role is Used by UI for Presentation Too
  • All Data is Stored in the CID
  • In Future can Delegate to EPortal or LDAP(hooks
    already in place)

83
CeBS SecurityRole Based
  • Each Role is a 2-Dim MATRIX of bit flags
  • First Dimension (columns)
  • Bit Flags to enable (the capabilities)Read,
    Write, Update, Manage,
  • Superset of E-Portal 2.0 Permissions
  • Second Dimension (rows)
  • Logical Subsystem or FeatureUser Data or
    Trouble Ticket or Portfolio

84
CeBS SecurityRole Based
  • A Simple user Role May
  • Create and Read but Not Close a Trouble Ticket
  • View the Catalog but Not Edit It
  • View a Simple Bill but Not Analyze It
  • An administrator Role May...
  • Affect Other Users
  • Subject to Hierarchy Constraints (yes - checked!)
  • Create Update Trouble Tickets for Other Users

85
CeBS SecurityRole Capability Flags
  • Read, Update, Create, Delete, Execute
  • Common Primitives
  • Surrogate (not in EPortal 2.0)
  • Can Act On Behalf Of Another User (a CSR Priv)
  • ChildToo (not in EPortal 2.0)
  • Look Into Child Organizations (Admin Privs)
  • Key to Hierarchical Security System
  • Define, Manage, Administer
  • Super User Capabilities

86
Sample Role - User
87
CeBS SecurityHow To Check...
  • BOD Task or EJB Calls - isTaskAllowed()
  • Example - Can I View a Trouble Ticket ?
  • if( ! isTaskAllowed( ? API
  • userContext, ? Who Am I and
    OnBehalfOf...
  • SysCode.SUBSYSTEM_TT, ? SubSystem
  • AccessControlCode.AC_Read) )? Capability
    Requested
  • return null ? return on
    failure...
  • ttbean (TroubleTicket)createEJB() ? Continue
    if Success...
  • . . . .

88
CeBS Architecture DetailsOne Vertical In
DetailTrouble Ticket
89
CeBS Typical BeanTrouble Ticket
  • Business Process Vertical
  • User Action - Create/Edit a Trouble TicketUI
    (JSP) ? Data Beans Action ? BOD ? BOD Task ?
    EJB ? BOSD ? Connector ? BOS
  • Process Notification (Asynch from BOS)BOS ?
    Listener ? BOD ? PNTask ? EJB

90
Trouble TicketJava Packages Involved
  • Root Packagecom.sybase.vp.tt
  • Business Logic (EJB) Package com.sybase.vp.tt.bl
  • BOD Task (described later) com.sybase.vp.tt.bod
  • UI Support - Data and Action Beans
    com.sybase.vp.tt.ev
  • BOS Interface - PN Tasks and BOSD Return
    Handler com.sybase.vp.tt.bos

91
Trouble TicketBOD Task Responsibilities
  • Standard Verbs
  • New - Create A New Trouble Ticket
  • Modify - Modify (Annotate) an Existing TT
  • View - Filter to Retrieve a set of TTs
  • Basic Procedure
  • isTaskAllowed()...
  • Call EJB Which Returns a JDOM
  • If Successful - incrementMeasured (system
    counters) - Otherwise Call addError()

92
Trouble Ticket Business ObjectWork for a NEW
Ticket
  • Generate a TT Number
  • Save Data to CID
  • Status is Entered (in the CID but not accepted
    by BOS)
  • Post Message to BOSD
  • Return the TT Number
  • Note
  • Caller gets a CeBS TT Number
  • Still in flight to Connector and BOS

93
Later...
  • Connector Actually Delivers the Ticket to BOS
  • The Return Handler
  • Updates the status in the CID to Submitted
  • Updates the Actual BOS TT Number. This provides
    the mapping from CeBS Number to BOS Number.
  • All by Calling the Real TroubleTicket EJB, No
    Back Doors.

94
Later StillBack Office Updates the Trouble
Ticket
  • Listener is Notified of Event in BOS
  • Call the EJB via the BOD to...
  • Update the status in the CID (if applicable)
  • Update Information in the CID (if applicable)
  • All by Calling the Real TroubleTicket EJB, No
    Back Doors.

95
What Is Stored in the Local DataBase (CID)
BOS Account Number
Our TT Number
BOS TT Number
Text Description
Custom Contact Info
Property Set for Extension
96
Trouble TicketEJB Classes
  • Remote Interfacecom.sybase.vp.tt.bl.TroubleTicket
  • Home Interfacecom.sybase.vp.tt.bl.TroubleTicketHo
    me
  • Bean Implementationcom.sybase.vp.tt.bl.TroubleTic
    ketBean
  • Exceptionscom.sybase.vp.tt.bl.TroubleTicketExcept
    ioncom.sybase.vp.tt.bl.DuplicateInsertException
  • Helper Classcom.sybase.vp.tt.bl.TroubleTicketData

97
Trouble TicketImplementation Class
etc
javax.ejb.SessionBean
VPEJB
com.sybase.vp.lang.VPSessionBean
CeBS base
javax.ejb
com.sybase.vp.tt.bl.TroubleTicketBean
Work Bean
extends
implements
98
CeBS 1.x ArchitectureConclusion
99
V615 - CeBS 1.x ArchitectureSummary
  • J2EE Based Framework
  • Stateless Session Beans (mostly)
  • Bean Managed Persistence
  • BOD Gateway to the Business Logic
  • BOSD Gateway to the Connectors
  • Role Based Security
  • Customer Information Database (CID)
  • Flexible Logging for Trouble Diagnosis

100
CeBS Implementation - Open Architecture
  • Designed to be Extended
  • Designed to be Customized
  • ALL of the Sample JSP sources are shipped
  • Fully Documented APIs XML for
  • In-Bound - business object dispatcher
  • Out-Bound - BOS (EAI) dispatcher
  • Business and data access objects
  • Connector, EJB, JSP, other Configuration
  • Extensive docs to EXTEND the existing application.

101
Where do I go from here?
  • Other TechWave Sessions
  • V616 - CeBS UI Framework Overview
  • V614 - CeBS Catalog Subsystem
  • V617 - Enhanced Logging for a J2EE Application
  • CeBS Manuals...
  • CeBS - Using and Customizing the Portal
  • CeBS - Developers Guide
  • Sample code for Reference Implementation (SybTel)

102
V615 - CeBS 1.x - Detailed Architecture
  • reed.shilts_at_sybase.com
Write a Comment
User Comments (0)
About PowerShow.com