Title: Case Study: INTELLIGEX SERVICES
1Week4 Building a Website Behind The Browser
Summary
What the User Sees
2Web Software
- Server software
- Load balancer
- Distribute requests among different servers
- State information management
- Compensate for stateless nature of HTTP
- Java IDE (Integrated Development Environment)
- Site management
- Permission/security management
- Hyperlink checkers
- Traffic analysis
3Server Clusters
Purpose Scale website service capability
1. What is the IP address of
www.foo.dom? 2. DNS server gives address of
reverse proxy server. RPS picks an
available server, sends request to it. 3.
Server send result to RPS. RPS sends result
to client.
Server Cluster
SOURCE WEB TECHNIQUES MAGAZINE
4Todays Storage Architecture
BACKUP
5Storage-Area Network (SAN) Solution
BACKUP OR REPLICATION
6Mobile CommerceTools and Infrastructure support
- .NET Servers
- Internet Information Services (IIS)
- MS Commerce Server (CS2K)
- MS Mobile Information Server (MIS)
- Development tools
- VS.NET
- MIT
7Mobile Web Application Architecture
8Mobile ArchitectureFeatures of Tier-1 (Wireless
Client Devices)
- Variety of mobile devices with different form
factor - Network connectivity options
- Affects data content and format
9Mobile ArchitectureFeatures of Tier-2 (Wireless
Gateways)
- Manages network connection
- Manages user session
- Reliability and optimization for wireless
networks - Security via encryption and authentication
10Mobile ArchitectureFeatures of Tier-3
(Wireless/Web Application Server)
- Client device aware
- Provides content adaptation capabilities
- Provides transcoding capabilities
- Pushes notifications, alerts, messages to mobile
user
11Mobile ArchitectureFeatures of Tier-4/5
- Tier-4 (Enterprise Integration Applications)
- Interface between tiers 1-3 and 5
- Extensible
- Tier-5 (Enterprise Applications)
- Current infrastructure, investment
- Data is shared
12Approaching User Centricity in e/m-Finance
Financial information and transaction for banking
and brokerage
Virtual Personal Financial Assistant Account
Aggregation
Mobile banking and brokerage
Personal Financial Alerting and Reporting
13Multi-channel Banking and Brokerage
14Components Overview
3rd party components
Financial Business Connectors
Financial Application Modules
Accessors or Gateways
Gateways
Accessor or Gateway Extensions for Application
Modules
Gateway ExtensionsforApplication Modules
Financial Business Services
Financial Application Framework
Enterprise Application Server
Financial CI Services
Financial EAI Services
15Financial Application Framework
You are here
The Financial Application Framework acts as a
power grid to connect all kinds of Financial
Application Components.
Provides generic financial functionality to ease
the development of Financial Application
Components. E.g. authentication, profiling,
configurable backend dispatching, multi-language
support
Does not only cover APIs but training courses,
extended documentation, methodology, release and
update strategy as well.
16Financial Application Framework
What is it?
Base for Financial Application Components. E.g.
Accessor Extensions, Gateway Extensions,
Alerting, Advising,out-of-the-box generic
Financial Application Modules, etc. Enables
system integrators and partners to
buildFinancial Components rapidly and
reliably. Clear and easy to understand
programming model. High percentage of proven
architecture and functionalitywill result in
high quality of built solution. E.g. error
handling, authentication, profiling, backend
dispatching, etc. 100 pure Java
implementationsupports BST/RDO-, CORBA- and EJB-
component model.
Less time!Less effort!More quality!
17Financial Application Framework
What are the Highlights?
- Business Accessing ObjectsAbstract data model,
supports paging sorting, session- and global
cache. - Configurable backend dispatching24/7 support,
time- or error scheduled. - Process ManagementHandling of business
processes. - Supports roles multi client systemsAccess
control (user, bank employee, administrator) - Individual business processes for different
clients. - Error handling concept
- Authentication and AuthorizationPIN/TANSmartCard
s - Transactional technical logging
- Automated logging with standard API.Multiple
data bases supported. - ProfilingCollecting data for customer
relationship management (CRM). - Testing environmentTest cases and -suites.
- Multi language support
18Web Programming Challenges
- Distributed client/server environment
- Offload computing to client
- Unknown client configuration
- Hardware ?
- Operating system ?
- Browser ?
- Insecure network (Internet)
- Rapid development (e-speed)
- Millions of users
- 24/365 operation
19Java Language Features
- Procedural syntax like C
- Object-oriented (classes, inheritance,
encapsulation) - Platform independence, security
- Strong typing, no pointers
- Polymorphism, overloading
- Dynamic memory management
- Threads
- start(), stop(), destroy(), sleep(),
setPriority() - synchronized objects (locks object during thread)
- Exceptions
- throw (generate an exception object), catch
- Huge class library, Internet interface methods
20Running Java
- Interpreting
- Compiling
- Requires knowledge of the target machine
- Just-In-Time Compiling
- Interpreting bytecode is slow
- Do what you can without knowing target machine
- Do the rest later (on target machine)
- Dynamic Compilation
- Interpret for a while, take statistics, compile
portions that use CPU time
21Java Compilation
- Java achieves portability by compiling for the
Java Virtual Machine (JVM) - Java produces bytecode for the JVM
- To implement Java on a computer, must build an
interpreter for the JVM on that computer - Must be interpreted
- source program doesnt know what computer it will
be running on, so dont know what machine code to
use
22Java Compilation
SOURCE W. E. COHEN
23HotSpot Dynamic Java Optimization
Idea Just-In-Time Compilation Run-Time
Optimization
COMPILATION ON SOURCE MACHINE
SOURCE CODE
BYTE CODE
COMPILER
COMPILE OPTIMIZE ON TARGET MACHINE
ADAPTIVE OPTIM IZER
BYTE CODE
INTERPRETER
MACHINE CODE
COEXIST
24Executing Java
SOURCE BYTE
25Applets
HTML ltappletgt codeclock.class codebase
http//www.sun.com/classes lt/appletgt
SOURCE FOURNIER
26Servlets
Like applets, but run on the server side
SOURCE SUN MICROSYSTEMS
27Java 1.2 Security Model
Every application is subject to a security policy
Applications are identified by digital signatures
Domain Set of classes given the same permissions
Range of security policies
Trusted native applications run here
Untrusted foreign applets run here
Security manager controls access to system
resources
SOURCE SUN MICROSYSTEMS
28J2EE
- Stands for Java 2, Enterprise Edition
- It is a collection of standards
- JDBC, JNDI, JMX, JMS
- It is a component technology
- Enterprise JavaBeans
- It is an application server
- Following in the footsteps of Component
Transaction Monitors
29History
- Distributed Objects
- CORBA, DCOM, etc.
- Three-tier scenario presentation, business
logic, and backend databases - Hard to get right without the proper
infrastructure - Server-Side Components
- Focuses on encapsulating business rules into
objects in the middle tier - Component Transaction Monitors
- Descendant of CORBAs Object Request Broker
- provides discovery, persistence, event
notification, transactions, etc. for three-tier
or n-tier applications
30Java Beans
- Java Beans reusable software components that can
be manipulated in a visual builder tool (e.g.
Borland JBuilder, IBM Visual Age for Java),
combined to form applications - Write once, run anywhere (WORA)
- Properties of Beans
- Introspection builder tool can analyze how a
Bean works. getBeanInfo(BeanClass) - Customization developer can use an app builder
tool to customize the appearance and behavior of
a Bean - Events enables Beans to communicate and connect
together - Properties property editors to customize Beans
- Persistence developers can customize Beans,
store and retrieve them, with customized features
intact, for future use - Can buy and sell Beans
31Enterprise Java Beans (EJB)
- An API specification for building scalable,
distributed, component-based, multi-tier
applications - Java Beans for server-side business applications
- Platform and vendor-neutral
- Java Beans extended with
- transactions
- state management
- deployment time (run-time) attributes
- (services not offered by the Java Virtual
Machine)
32Architectural Overview
- Two Types of Enterprise JavaBeans
- Entity Beans
- Used to model business concepts such as customer,
cruise ship, inventory item, etc. - Session Beans
- A server-side representative of the client
session beans are responsible for managing
processes or tasks for instance in an airline
reservation scenario, the session bean would be
responsible for reserving a seat on a particular
flight and verifying payment
33Enterprise Java Beans
SERVER MANAGES EJB CONTAINERS
- CONTAINER HANDLES
- TRANSACTION MGMT
- SECURITY
- CLIENT CONNECTIVITY
- LIFE CYCLE MGMT
ENTERPRISE BEANS HANDLE BUSINESS LOGIC
SOURCE SUN MICROSYSTEMS
34Enterprise Java Beans
DATABASE STORES ENTITY BEAN STATES
- ENTITY BEAN
- REPRESENTS BUSINESS ENTITY OBJECT
- SHARED BY MANY CLIENTS
- IS PERSISTENT
- SESSION BEAN
- PERFORMS TASK FOR 1 CLIENT
- IS NOT PERSISTENT
CUSTOMER ON WEB
SERVLET RESPONDS TO CART APPLET
SESSION BEAN CLIENT
SOURCE SUN MICROSYSTEMS
35Benefits of an Application Server
- Resource Management
- Instance Pooling and Swapping
- Server can invoke multiple instances of a bean to
handle multiple incoming requests (pooling) - An instance of a bean class can handle requests
from multiple skeletons (swapping) - Activation
- if a bean is stateful, application servers
automate the process of saving and restoring bean
state when a bean is deactived and later activated
36Benefits of an Application Server
- Primary Services
- Concurrency
- Beans are automatically thread safe application
servers handle concurrent access to a bean They
also handle reentrance - Transactions
- Bean operations can belong to a transaction and
the application server handles rolling back an
applications state if a partially completed
transaction fails - Persistence
- Application servers can map beans into database
entries (and back again) - Naming (bean discovery) and Security (encrypted
communication and access control)
37Integrated DevelopmentEnvironments (IDEs)
- An application with tools for developing software
in a particular language - Syntax-directed editor
- Create program text, match delimiters, keyword
completion - Visual debugger (single-step, trace variables)
- Compiler
- Run-Time Environment
- Borland JBuilder, Visual J, Symantec
VisualCafé, NetBeans, JavaMan
38XML (eXtensible Markup Language)
- Markup language identifies text components of a
document, e.g. title, date, price,
quantity - Components are delimited by tags
- Just 1 syntactic construct lt /tag_name
param value / gt
39Invoice Example
ltUnitPricegt6.05lt/UnitPricegt
40Document Has Become Structured
- lt?xml version"1.0"?gtltRecipegt ltNamegtApple
Pielt/Namegt ltIngredientsgt ltIngredientgt ltQty
unitpintgt1lt/Qtygt ltItemgtmilklt/Itemgt lt/Ingredi
entgt ltIngredientgt ltQty uniteachgt10lt/Qtygt
ltItemgtappleslt/Itemgt lt/Ingredientgt lt/Ingredients
gt ltInstructionsgt ltStepgtPeel the
appleslt/Stepgt ltStepgtPour the milk into a
10-inch saucepanlt/Stepgt lt!-- And so on...
--gt lt/Instructionsgtlt/Recipegt
41DTD (Document Type Definition)
- XML is extensible because it allows user-defined
tags - lt!-- Sample DTD --gtlt!ELEMENT Recipe (Name,
Description?, Ingredients?, Instructions?)gtlt!ELEM
ENT Name (PCDATA)gtlt!ELEMENT Description
(PCDATA)gtlt!ELEMENT Ingredients
(Ingredient)gtlt!ELEMENT Ingredient (Qty,
Item)gtlt!ELEMENT Qty (PCDATA)gtlt!ATTLIST Qty
unit CDATA REQUIREDgtlt!ELEMENT Item
(PCDATA)gtlt!ATTLIST Item optional CDATA
"0"isVegetarian CDATA "true"gtlt!ELEMENT
Instructions (Step)gt
TAG Instructions HAS ONE OR MORE Step TAGS
SOURCE JAVAWORLD
42Document Object Model (DOM) in XML
- Tags defined hierarchically have an object
inheritance structure - The entire document then becomes an object whose
parts have attributes
SOURCE JAVAWORLD
43XML Implementations
- XBRL Financial Documents (Extremely Important)
http//www.xbrl.org/ - HL7 - health information (Health Level 7)
- FIXML - syntax - Trading and Securities
- SWIFT - repository - Intra-Bank exchanges
- X12 - data exchange standard for business
transactions - EDIFACT/SimplEDI - syntax - repository
- IFX - Interactive Financial Exchange formerly
OFX/Gold (Open Financial Exchange ) - personal
banking. - RosettaNet - catalogues, supply chain automation
- OTP - Open Trading Protocol - buying
44File of Electronic Records
Types of Records
REPORT OF INDEPENDENT ACCOUNTANTS To the
Board of Directors and Stockholders of Great
Plains Software, Inc. In our opinion, the
consolidated financial statements listed in the
accompanying index present fairly, in all
material respects, the financial position of
Great Plains Software, Inc. and its subsidiaries
at May 31, 1999 and 1998, and the results of
their operations and their cash flows for each of
the three years in the period ended May 31,
1999, in conformity with generally accepted
accounting principles. In addition, in our
opinion, the financial statement schedules
listed in the accompanying index present fairly,
in all material respects, the information set
forth therein when read in conjunction with the
related consolidated financial statements. These
financial statements and financial statement
schedules are the responsibility of the
Company's management our responsibility is to
express an opinion on these financial statements
and financial statement schedules based on our
audits. We conducted our audits of these
statements in accordance with generally accepted
auditing standards, which require that we plan
and perform the audit to obtain reasonable
assurance about whether the financial statements
are free of material misstatement. An audit
includes examining, on a test basis, evidence
supporting the amounts and disclosures in the
financial statements, assessing the accounting
principles used and significant estimates made by
management, and evaluating the overall financial
statement presentation. We believe that our
audits provide a reasonable basis for the opinion
expressed above. /s/ PricewaterhouseCoopers LLP
PricewaterhouseCoopers LLP Minneapolis ,
Minnesota June 25, 1999
45eXtensible Business Reporting Language (XBRL)
Example
46XBRL DTD
47Web Development Tools
- Symantec VisualCafé
- Full Bean support
- Forms Designer (100 pre-built Java Beans)
- Visual Class browser, modify hierarchies
- Compile, incremental debug (source-level)
- integrate with dbAnywhere
- drag-and-drop database connection Beans
- JBuilder
- Visual development environment for building
applications, applets, JSP/Servlets, JavaBeans,
Enterprise JavaBeans and distributed J2EE
applications for the Java 2 Platform.
48Middleware
- Purpose allow implementation of distributed
peer-to-peer and client/server processing over
the Internet - simplify design and implementation
- Objects, programs data can
- reside anywhere
- be accessed from anywhere
- Issues
- reliability (messages may arrive out of order or
not at all) - security
- performance
- scalability
- error recovery
49Message-Oriented Middleware (MOM)
- For distributed (object-oriented) systems in
which applications communicate by real-time
messages - e.g. loan processing (requires multiple data
sources) - Asynchronous technology
- Messages queued until acted upon
- MOM middleware provide
- Communications
- Queueing
- Journaling (for error recovery)
- Data transformation
- Exception handling
- Workflow
50Publish and Subscribe
SOURCE WEYERHAUSER
51Publish and Subscribe Middleware
- Players
- publishers
- subscribers
- Asynchronous, event-triggered
- Monitors activity, pushes content to subscribers
- Products
- ActiveWeb (Active Software)
- TIB/Rendezvous (TIBCO)
52Transaction Processing Monitors
- Transaction Processing Monitors (TPS)
- Provide
- queuing
- load balancing
- security
- automatic server failover
53Transaction Processing Middleware
SOURCE SUNWORLD
54Database Middleware
SOURCE SUNWORLD
55XML Middleware
Business rules
XML Server
Rendering
Database
HTML
XML
(Middleware)
Browser
Server
HTML
(Client)
HTTP
SOURCE HOWARD STRAUS
56Remote Procedure Call (RPC) Middleware
- In client/server architecture, impractical to
have all software the client (or server) may need
on 1 system - Want to invoke software remotely at function-call
(not application) level - Location transparency code should work the same
regardless of location of remote procedure - Client calls a stub
- Stub interfaces with remote procedure
- packages parameters
- handles return values
- Interface defined in Interface Definition
Language (IDL)
57Remote Procedure Call
API INSULATES SERVER FROM NETWORK DETAILS
API INSULATES CLIENT FROM NETWORK DETAILS
SOURCE FOURNIER
58RPC Middleware
- Synchronous
- Best for failure recovery
- Asynchronous
- Scalable since little information about the
session is kept - Poor for transaction integrity
- Provides
- Directory
- Security
- Time Services
- IBM XML-RPC for Web services and XML-RPC
Middleware
59Middleware Comparison
SOURCE JUDITH HURWITZ, DBMS Magazine