Double Buffering - PowerPoint PPT Presentation

1 / 40
About This Presentation
Title:

Double Buffering

Description:

MVC over net / Alive Business Objects. Workflows. EsprIT client framework ... HiLocate Project, ISA Telematics. 36. ServerSuite. 7.x. Application Example III ... – PowerPoint PPT presentation

Number of Views:241
Avg rating:3.0/5.0
Slides: 41
Provided by: rainer75
Category:

less

Transcript and Presenter's Notes

Title: Double Buffering


1
Server Suite
Universal Multichannel Middleware Server for
Rich-Clients A Java Framework for
Agent-basedClient/Server Programming
2
Content
  • EsprIT ServerSuite Overview
  • Web- or rich-clients?
  • Multi-channel client sessions
  • Agent concept
  • Client-Commands / Async-Tasks
  • MVC over net / Alive Business Objects
  • Workflows
  • EsprIT client framework
  • EsprIT server functions
  • Server Cascading
  • Server Database Access
  • Key advantages

3
Web- or Rich-client?
Web-Browser
ServletJSPsStrutsHtmlXMLTaglibsPHPASPPEARL
CGI
WebServer
HTTP/HTML
WebClient
statelessunidirectional
What the web-server for web-clients...
Java VM
Java Object- Serialization
EsprIT-Server
RichClient
Agents
statefullbidirectional
...is the EsprIT-server for rich-clients
4
Rich-clients come back
Advantages/Disadvantages Summary
  • Web-client
  • No software installation required
  • - Browser dependent
  • - Limited to browsers GUI
  • - Limited complexity
  • - No real session management
  • - Difficult to make fail-safe
  • - Software difficult to maintain
  • - Tough server-polling
  • - Reduced performance (HTML)
  • - Heavy server side load
  • Rich-client
  • - Needs installation on each client
  • (Automatic since Java-Webstart)
  • No browser needed at all
  • Full GUI power
  • Unlimited complexity
  • Real session management
  • Robust and fail-safe
  • Software easy to maintain
  • Instant client updates
  • Best possible performance
  • Load balanced on client/server

5
Client Connection
  • EsprIT multi-channel client connections
  • Request/Response channel for sync/async client
    requests
  • Message channel for async server messages
  • (optional) Transfer channel for mass data
    transfer
  • (optional) Web channel for access to HTML
    documents
  • Request/Response and Message channel build a
    client-session

6
Request/Response Channel
  • Request/Response channel (synchroneous)
  • Request is sent to server and client waits until
    Response is received
  • Request and Response can carry a serializable
    Object argument
  • Request may run into timeout either on server or
    on client
  • Request can have a low/high priority
  • Request can be async (Response is sent in a
    Message)
  • sync client blocks waiting for response
  • async only the calling GUI action blocks waiting
    for response in message

Request
EsprIT Server
Database
Client
Response
7
Message Channel
  • Message Channel (asynchroneous)
  • Server sends asynchroneous Messages to client
  • Message can carry any serializable Object
    argument.
  • Message may be caused by Server, other clients or
    client himself
  • Different types of Messages cause different
    client reactions
  • Client may register/deregister for particular
    types of Messages
  • Client may receive an executable command in a
    Message

Client registersfor message types
EsprITServer
Message
Database
Client
8
Transfer channel
  • Transfer channel for mass data transfer
  • Temporary TCP connection just for mass data
    transfer
  • Performs mixed up/download of filesets in a
    transaction
  • Can run sync/async, locked/unlocked, with
    high/low priority
  • Only connected, authenticated clients can use
    transfer port
  • Many file transfers may run in parallel

transactionalup/downloadof file sets
EsprIT Server Transfer channel
Database
Client
9
Web channel
  • Integrated Webserver
  • Provides access to HTML documents, images,
    classes etc.
  • PUBLIC Web root-directory for unauthorized access
  • PRIVAT Web root-directory for authorized access

public area
private area
HTTP Request
EsprIT Server Web Channel
Database
Client
HtmlImages etc...
10
Agent concept
  • Synchroneous Agent execution
  • Agent may be an argument of Request/Response or
    Message
  • Agent is executed on the server and then returned
    in Response
  • Agent is postprocessed on client at receive time
  • Carries input params for execution as well as
    results of execution
  • May run with user defineable priority
  • Can have any Serializable Object argument (zipped)

Request
Sync
Database
Client
Response
11
Async Agents
  • Asynchroneous Agent execution
  • Agent can be executed asynchroneously on server
  • After execution Agent is sent back to client in a
    Message
  • The calling GUI Action blocks until Agent-Message
    is received
  • Async Agent can be cancelled by the client at any
    time
  • Client can run many async Agents in parallel on
    the server
  • When client disconnects, server terminates all
    it's running Agents

Request
Database
Client
Async
Message
12
Parallel Agent Execution
  • Parallel Agent execution on client and server
  • Async Agent is synchroneously executed on server
    and immediately returned to client in Response
    (with partial results)
  • Async execution of Agent is started on server
  • Postprocessing of sync Response-Agent is started
    on client
  • Server sends finished Agent to client in Message
    (with full results)
  • Client postprocesses the received Message-Agent
  • Thus server and client have been processing in
    parallel

Request
Sync
Database
Client
Response
Async
Message
13
Sequenced Agents
  • Sequenced Agents are received in multiple
    messages
  • Large result data are sent in a sequence of
    multiple chunks
  • Chunk size is user definable
  • Client can display progress in a progress bar
  • Client GUI action blocks until last chunk is
    received
  • Example read large record sets from a database

Request
Client
Database
Async
Async
Async
Multiple Messages
14
Client Commands
  • Server can send a command to the client
  • Is executed on the client when received
  • Can be executed sync or async within client
  • Can do ANYTHING on client side
  • Server uses client-command to control
    clientsExample forced termination of client
  • Users can send client-commands to other users

Client-Command
Client
EsprIT Server
Database
15
Remote Tasks
  • Synchronization between local and remote task
  • Client thread starts remote thread (process) on
    the server
  • Client thread awaits task-events of the
    server-thread
  • Server-thread sends process-typical
    task-eventsSTART, PROGRESS, SUCCEEDED,
    CANCELLED, FAILED, FINISHED
  • The FINISHED-event terminates wait-state of
    client in any case
  • Simplifies programming of async workflows

Local Thread
Remote Thread
Local Thread
TaskEvent
EsprIT Server
Client
Progress Monitoring
16
Client Communication
  • Clients can directly communicate to each other
  • A client can send as message to
  • - a particular other client (SessionId)
  • - all clients of a particular user (UserId)
  • - alle connected clients
  • Integrated client-chat-tool
  • Integrated client-notification-tool

Message
Integrated client chat-tool
17
Writing Applications
  • Agents are the programming API for custom
    applications
  • Agents contain code for processing on Server and
    Client
  • Thus an Agent encapsulates a particular custom
    functionality
  • Writing a custom application means Writing
    particular Agents for particular functions -
    thats all!
  • No server code needs to be changed
  • Comprehensive Agent-library available for
    standard functions

18
MVC over Net
  • Model-View-Controller over net

A client (Controller) modifies the Model
All clients are beeing notified and refresh
their view
19
Alive Business Objects
  • Alive" Business Objects, global accessible
    server-objectswith dynamic updating on all
    clients (via event notification)

EsprIT Server
One client modifiesthe business-object
All clients are beeing notified and refresh their
view
20
Alive Business Objects II
  • Alive Business Objects (ABOs)
  • Use MVC over net
  • ABOs are distinguished by PrimaryKey
  • Changes are notified to all accessing clients
  • ABOs can be accessed with exclusive lock
  • ABOs can be database-persistent
  • Extremly easy to use
  • fetch(withLock, PrimaryKey) Access by PrimaryKey
    (evtl. with exclusive lock)
  • find(SqlCondition) Search all ABOs matching the
    condition
  • drop() Forget this ABO (no updates any more)
  • create() Create new ABO on server side
  • update() Update local changes on server side
  • delete() Delete ABO on server side

21
Alive Business Objects III
  • ABO Server-cache
  • Server caches ABOs for fast access
  • Server knows, which client has access to which
    ABO
  • Change-events are only sent to accessing clients
  • Client can "drop" ABO and wont receive
    change-events any more
  • Server removes ABO from cache if nobody accesses
    it any more
  • Cache-resistent ABOs remain in the cache forever

22
Workflows
  • Workflows
  • Controls execution of a set of async tasks
  • Incl. remote-tasks, file-transfers,
    stream-downloads etc...
  • Workflow Monitor displays planned/running/done
    tasks
  • Decision-points allow for manual interaction and
    flow control
  • Cancellable any time
  • Clean error processing
  • Many workflows can run at the same time

23
Resource Locks
  • Server resource locks
  • Any Server-Object can be associated with a lock
  • SHARED protects against deletion during access
  • EXCLUSIVE protects against foreign changes
  • Resource Locks are "leased"
  • Client must retrigger a lock in timeIf client
    goes away all its locks are beeing released
    automatically
  • Administrator can enforce release of a lock
  • Examples
  • Lock server file access
  • Lock database access
  • Lock ABO (Alive Business Object) access

24
EsprIT Client
  • Comprehensive customizable client framework
  • Powerful GUI framework for developing clients
  • Dynamic attach/detach to/from EsprIT-Server
  • Direct inter client communication
  • Many ready to use GUI components and support
    classes
  • Powerful async task framework

25
Client Activity Monitor
  • Client's asynchroneous activity can consist of
  • Agents Running async Agents on the server
  • Transfers Running async transactional file
    transfers
  • Processes Running async local OS-processes
  • Commands Running async commands received from
    server
  • All client activity can be visually monitored
  • User may cancel any async activity at any time

Connect/disconnect button
Client activity monitor
Request/message indicator LEDs
3 async Agents currently running on server
26
EsprIT Admin Client
  • Administration client for controlling EsprIT
    Server
  • Observe server activity by viewing server profile
  • Observe server console messages and server events
  • View and manage server logfiles
  • Configure server runtime parameters dynamically
  • Allows to monitor and control clients
  • Communicate to clients (via messages)

27
EsprIT Server
  • Fully equipped multi-channel middleware server
  • Runs as a background (Java) process on any
    platform
  • Real session-management (Request/Response,
    Message)
  • Optional services (Transfer-, Web-channels)
  • Scalable thread pools (configurable at runtime)
  • Integrated User/Group manager
  • Manages resource locks (leasing)
  • Comprehensive logging functionality
  • Server-status notification to clients (messages)
  • Observable server statistics
  • Depends on nothing but Java
  • Easy customizable by pluggable server components
  • UserManager, TaskManager, PermissionManager
    etc...

28
Server Profile
  • Server activity profile snapshot

29
Integrated WebServer
  • Webservice access to documentation, images etc...

30
Database Access
  • Client access to database (full edit
    functionality)

31
Server Cascading
  • EsprIT servers can be connected to each other
  • A server may be client of any other server
  • Co-client/co-server connections are failsafe
    (monitored)
  • Requests can be routed to any target server
  • Agents can travel around multiple servers

32
Co-Clients, Co-Server
  • Co-client and co-server connections

This server has another server as a co-client
This server is co-client of 2 other co-servers
3 users logged in
One user holds an exlusive lock on a server
resource
One user is running a file transfer
33
More Server Features
  • Additional server features
  • Support for batch-processes (time scheduled
    background jobs)
  • Self-surveillance with alarm notification via
    E-Mail
  • Self-healing inter-server connections
  • Dynamic connection-pool to database (parallel
    transactions)
  • Simultaneous connections to multiple
    databases(with direct data transfer between
    different vendors databases)

34
Application Example I
  • INCA Project, BGR Hannover

35
Application Example II
  • HiLocate Project, ISA Telematics

36
Application Example III
  • BDE-IS Project, Hydro Aluminium Hamburg

37
Key Advantages
  • Key advantages of EsprIT Client/Server Technology
  • True sessions (Request/Response and Message
    channels)
  • Client notification via message, no
    server-polling,true Model-View-Controller (MVC)
    over net
  • Fast and easy data transfer (Java-serialization)
  • No overhead like XML or data conversionHigh
    performance (stable TCP connections)
  • Transactional file-transfers
  • Upload/download of mass-data client?server,
    server?server
  • Extremely flexible Agent concept
  • Agents serve as easy to program API for custom
    functionality
  • Alive Business Objecst (ABOs)
  • Gives all clients a consistent view of the world.
  • Server Cascading
  • Allows for scalability and task sharing among
    many hosts

38
Key Advantages II
  • Key advantages of EsprIT Client/Server Technology
  • Chaining complex sync/async operations with
    Agents, ClientCommands, Tasks, FileTransfers,
    etcExample Client starts CAD system and
    creates input-fileInput-file is automatically
    beeing uploaded to central serverCentral server
    creates database entry and forwards data to
    compute-server Compute-server starts calculation
    and transfers results to central-serverCentral-se
    rver updates database and notifies clientClient
    downloads result file(s)Client starts CAD-system
    for displaying results...All this in an
    automatic procedure, whereas each operation
    triggers the next
  • Independent from database system (pure JDBC)
  • Independent from hardware platform (pure Java)
  • Many, many possible applications

39
Best Rich-Client Support
  • Where EsprIT Server is the best fit
  • The ideal server for rich-client support
  • Rapid development of client/server applications
  • Best support for clients
  • which are complex in functionality,
  • need to be highly responsive,
  • need to be dynamically kept up to date
  • EsprIT server may perform
  • auditing or monitoring of remote processes
  • running time scheduled server processes
  • Server-cascading allows for
  • running different tasks on different hosts
  • surveillance of activity on remote hosts

40
Comparision
EsprIT-Server or Application-Server?
  • EsprIT-Server
  • Low cost
  • Low maintenance effort
  • Low learning effort
  • Server cascading
  • Easy programming API (Agent)
  • No restrictions in functionality
  • Client message notification
  • Best possible performance (dual port TCP)
  • - Cannot be clustered
  • Application-Server
  • - High cost
  • - High maintenance effort
  • - Very high learning effort
  • - No Server cascading
  • - Complex mixture of technologies
  • - Restricted to EJBs
  • - No client message notification
  • - Limited performance (RMI, SOAP, XML etc...)
  • Can be clustered
Write a Comment
User Comments (0)
About PowerShow.com