SlideShare ist ein Scribd-Unternehmen logo
1 von 49
Downloaden Sie, um offline zu lesen
java.sun.com/javaone/sf
| 2004 JavaOneSM
Conference | Session TS-26141
Jini™ Network
Technology-Enabled
Service-Oriented
Architecture
Leon Chism/Steve Hoffman
Chief Internet Architect/Engineering Fellow
Orbitz
www.orbitz.com
A Low-Cost Alternative to
Enterprise JavaBeans™ (EJB™)
Architecture
| 2004 JavaOneSM
Conference | Session TS-26142
Goal
Increase your understanding of Jini™
network technology distributed computing
architectures, how they can facilitate
competitive advantage, and how they can
be used to replace/augment more
expensive alternatives.
| 2004 JavaOneSM
Conference | Session TS-26143
Orbitz’s Commitment to
Jini™ Network Technology
Or why am I listening to you?
• Orbitz runs over 1300 Jini™ services used by
over 300 client VMs
• Orbitz’ Jini™ network technology-based
architecture powers Orbitz.com, AA.com and
NWA.com, making it one of the highest-volume
processors of airline tickets
• Jini™ services have achieved 99+% uptime
(best uptime of all sub-systems at Orbitz)
| 2004 JavaOneSM
Conference | Session TS-26144
Agenda
Introduction
Orbitz Architecture
Jini™ Technology Benefits
Distributed Computing Pitfalls
What’s Next?
Wrap up
| 2004 JavaOneSM
Conference | Session TS-26145
Agenda
Introduction
Orbitz Architecture
Jini™ Technology Benefits
Distributed Computing Pitfalls
What’s Next?
Wrap up
| 2004 JavaOneSM
Conference | Session TS-26146
Orbitz Overview
• Founded in 2000 by 5 leading airlines
• Site launched in 2001
• Top 3 brand travel site in just over two years
• 22 MM registered users and strong
monthly traffic
• Poised to extend
strength in air to
other products
• Positive cash flow
from operations
since Q4 2002
• Public offering
on 12/17/03
| 2004 JavaOneSM
Conference | Session TS-26147
2001
Orbitz
8%
Expe
dia
31%
Other
28%
Travel
ocity
33%
Rapidly Approaching #2 Position
Based on gross travel bookings
Source: PhoCusWright
Jan 1–Jun 30 2003
Orbitz
17%
Expe
dia
40%
Other
23%
Travel
ocity
20%
| 2004 JavaOneSM
Conference | Session TS-26148
Architectural Drivers
• Low-cost distributor
• Speed to market is critical
• Flexibility of the application
• Robustness
─Availability
─Reliability
| 2004 JavaOneSM
Conference | Session TS-26149
Why Use Jini™ Network Technology?
• Enables automatic failover and recovery
• Scales horizontally
• Lookup capabilities
─Typed
─Interface-based
• Functionality didn’t require transactions
• Automatic load balancing
• Self-healing
• Low-cost (no license costs)
| 2004 JavaOneSM
Conference | Session TS-261410
Agenda
Introduction
Orbitz Architecture
Jini™ Technology Benefits
Distributed Computing Pitfalls
What’s Next?
Wrap up
| 2004 JavaOneSM
Conference | Session TS-261411
Orbitz Architecture
Mile-high view
Presentation /
State / Persistence
Webapp
Web Services
IVR / Messaging
Apache
Weblogic
Oracle
Generic
Services
Air Services
Hotel Services
Car Services
Supplier—
Specific Services
GDS X Service
Airline X Service
Airline Y Service
GDS Y Service
Hotel Switch X Service
Hotel Switch Y Service
Jini wrappers
around legacy
systems and
internally hosted
J2EE systems
| 2004 JavaOneSM
Conference | Session TS-261412
Supplier Link
Single host system (i.e. AA.com/NWA.com)
| 2004 JavaOneSM
Conference | Session TS-261413
SLONEGOrbitz.com
WebLogic
App Server
ONEG
Server
Logging
Service
Wspan
AA
CO
NW
HP
US
Pegs
TWeb
Discover Publish Publish
Log Log Log
Discover
ONeG—The Big Switch
Putting it all together
LUS
LUS
LUS
Logging
Service
LUS
LUS
LUS
LUS
Logging
Service
Logging
Service
Logging
Service
Logging
Service
Log
WebLogic
App Server
WebLogic
App Server
WebLogic
App Server
WebLogic
App Server
WebLogic
App Server
Hotel-
Oneg
Server
Other
Services
Other
Services
Other
Services
ONEG
Server
ONEG
Server
ONEG
Server
| 2004 JavaOneSM
Conference | Session TS-261414
ONeG—Design Decisions
• Client could have contacted host specific
services directly
• Was decided to put failure/retry logic in
the booking engine, not push on the client
due to hot reconfiguration requirements
• Business event logging at ONeG layer
• Use network layer security to restrict
access to supplier specific layer
Switch or router?
| 2004 JavaOneSM
Conference | Session TS-261415
High-Level Architecture Diagram
Novo System
(incl. orbitz.com
AA
Hosting
System
(connects only to
Sabre AA)
aa.com
Orbitz
Supplier
Link
System
nw a.com
JiniSLServicesi/f
JiniSLServicesi/f
NW
Hosting
System
(connects only to
WorldSpan)
JiniSLServicesi/f
ONeG / Hotel
(Rate request,
content,
search)
JiniSLServicesi/f
Kinetics
Shares
CO
HP
1P
World
Span
(NW)
Bookings DB
Site
DB
Orbitz
Merchant
Hotels
(OMH)
Pegasus
(external)
JiniSLServicesi/f
Sabre
AA
US
Notification
Jinii/f
Kinetics
Servleti/f
SMTP
Service
Notshown
Reporting
Monitoring/mgt/admin
Customer Care
Other agent desktop usage
Gatew ay
Partners
Advertising
Represents request/response where the
request is made in the indicated direction
ITA
Clear
Commerce
RPS
ONeG
(Air, Car,
Hotel
Bookings)
IVR
Service
"Public"HTTPi/f
Fulf illment
Serv leti/f
Hotel
Reference
Hotel DB
(Rate Cache)
Internet
Smart
Proxy
Jinisurrogate
Notif ica
-tion
Serv er
Web-siteFront-ends SupplierSystem "Third-parties"
OAG
Flifo
Servleti/f
Flif o
Serv er
Flif o
Jinii/f
J2EE
Jini
| 2004 JavaOneSM
Conference | Session TS-261416
The General Idea
Combine common set of objects, service
interfaces and JiniSM
services to create
blocks of reusable functionality.
| 2004 JavaOneSM
Conference | Session TS-261417
The General Idea (Cont.)
• Common objects
─AIRPORT
─CARRIER
• Service interfaces
─LowFareSearchRequest
─AirPurchaseRequest
• Mask framework details with simple Factory
─ServiceImpl =
OrbitzFactory.get(serviceInterface);
• Simple configuration (at least for client)
─VersionAttribute String
─List of lookup servers OR list of multicast groups
| 2004 JavaOneSM
Conference | Session TS-261418
The General Idea (Cont.)
• Response (and objects contained) are
core objects or interfaces are immutable
• Underlying implementations typically have
much more information than is exposed
to client
• Services are all transient and non-activatable
hence completely interchangeable
• No transactions
Things to note:
| 2004 JavaOneSM
Conference | Session TS-261419
Let’s See Some Code!
• Startup
ClientStarter.start();
• Shutdown
ClientStarter.stop();
• Sample transaction
SampleServiceRequest req =
OrbitzFactory.get(SampleServiceRequest.class);
req.setFoo(foo);
req.setBar(bar);
SampleServiceResponse resp = req.execute();
baz = resp.getBaz();
Client’s perspective:
| 2004 JavaOneSM
Conference | Session TS-261420
Say What? Show Me a Picture….
req = OrbitzFactory.get(FooRequest);
req.setXXX(xxx);
ObjectFactory
Jini Service
http codebase
server
FooRequestImpl
resp = req.execute();
resp.getYYY();
remote = OrbitzFactory.get(FooRemote);
return remote.execute(req);
FooRemote
Jini Service
FooResponseImpl
| 2004 JavaOneSM
Conference | Session TS-261421
Let’s See More Code!
• Startup
ServerStarter.start();
SampleService ss = new SampleServiceImpl();
// SampleServiceImpl extends UnicastRemoteObject
// Need to run rmic to generate _Stub class
DiscoveryManagment ldm =
ServerStarter.getDiscoveryManager();
// Most likely LookupDiscoveryManager
JoinManager jm = new JoinManager(ss, attributes,
null, ldm, null);
// attributes is an Entry[] which includes
// things like VersionAttribute
Publishing a Service (Jini 1.X)
| 2004 JavaOneSM
Conference | Session TS-261422
Let’s See More Code!
• Shutdown
UnicastRemoteObject.unexport(ss, false);
jm.terminate();
ServerStarter.stop();
Publishing a Service (Jini 1.X) (cont.)
| 2004 JavaOneSM
Conference | Session TS-261423
Agenda
Introduction
Orbitz Architecture
Jini™ Technology Benefits
Distributed Computing Pitfalls
What’s Next?
Wrap up
| 2004 JavaOneSM
Conference | Session TS-261424
Jini™ Technology Benefits
• Designed to expect network failure
(not ignore that it happens)
• Multicast discovery mechanism of
Lookup Server ensures <1 minute
discovery (heartbeat)
• Services come and go. Have many
places to go to get serviced
Self-healing
| 2004 JavaOneSM
Conference | Session TS-261425
Jini™ Technology Benefits
• LookupCache and
ServiceDiscoveryManager use random
selection when single service is requested
and there are multiple matches
• Over time this results in an even load
distribution of load on identical services
Automatic load balancing
| 2004 JavaOneSM
Conference | Session TS-261426
Jini™ Technology Benefits
• Capacity is directly related to the number of
places a client can go to fulfil a service request
• If you need more capacity of a particular
service, just start more instances
• Each LookupCache gets notified of new
service and load is redistributed across
new set
Horizontal scalability
| 2004 JavaOneSM
Conference | Session TS-261427
Jini™ Technology Benefits
• Easy to publish a service
• Easy to find a service
• Catch RemoteException and discard
proxy when something goes wrong
Lightweight
| 2004 JavaOneSM
Conference | Session TS-261428
Agenda
Introduction
Orbitz Architecture
Jini™ Technology Benefits
Distributed Computing Pitfalls
What’s Next?
Wrap up
| 2004 JavaOneSM
Conference | Session TS-261429
Distributed Computing Pitfalls
• We don’t use remote objects
• No way to turn it off in JRMP
implementation of RMI (Jini versions 1.X)
• Default 1 minute DGC interval kills any
heap optimizations
• Accounts for anywhere between 50-75%
of the threads in our system
RMI Distributed Garbage Collection
| 2004 JavaOneSM
Conference | Session TS-261430
Distributed Computing Pitfalls
• Make DGC interval longer or disable
explicit GC (we saw a 1.5% improvement
in VM throughput when using
-XX:+DisableExplicitGC—
time spent running code vs doing GC)
• Upgrade to Jini 2.X and use JERI so
we can disable DGC
RMI DGC—possible remedies
| 2004 JavaOneSM
Conference | Session TS-261431
Distributed Computing Pitfalls
• Contributed implementation designed to wait
until things aren’t changing before answering
• Implemented with big reader’s/writer lock
• Not common, but annoying when
LookupCache/ServiceDiscoveryManager drops
all discovered services when lease
to lookup server cannot be renewed
Reggie lockouts
| 2004 JavaOneSM
Conference | Session TS-261432
Distributed Computing Pitfalls
• Longer lease times
• Custom implementation of lookup server that
doesn’t have reader’s/writer lock. Won’t get
best picture of state of services, but isn’t
necessary in our system
Reggie lockouts—possible remedies
| 2004 JavaOneSM
Conference | Session TS-261433
Distributed Computing Pitfalls
• If a machine gets slow, random selection will
eventually put all requests on the slow machine
• Also a problem in heterogeneous environments
Randomized load balancing
| 2004 JavaOneSM
Conference | Session TS-261434
Distributed Computing Pitfalls
• Switch from sync. calls to async so a
push to a service becomes a pull.
Use a JavaSpaces™ or JMS™ queue
• Publish Attribute with notion of relative
capacity in conjunction with
ServiceItemFilter on client side to
adjust spread of service calls more in-line
with machine’s relative abilities
Randomized load balancing—possible remedies
| 2004 JavaOneSM
Conference | Session TS-261435
Distributed Computing Pitfalls
• LookupCache uses event notification to
keep local VM cache up to date
• If large number of clients/lookup
servers/services, the math gets big—e.g.:
─100 app servers (service clients) * 2 lookup servers
* 30 services/VM * 20 VMs = 120,000 messages
• Contributed implementation of Lookup Server
does in-order delivery of notifications which
involves a linear scan of a single list of
messages to send out
Event storming using the LookupCache
| 2004 JavaOneSM
Conference | Session TS-261436
Distributed Computing Pitfalls
• Custom LookupCache that doesn’t use
event notifications:
─Every client probably doesn’t need more than 3-4
places to go for a particular service type at any time
─Auto-expire entries based on time or number of
calls to get same randomization
─Backfill with more services as current ones
become invalid
• Custom Lookup Server with event module
optimized for throughput of in-order event
notification
Event storming—remedies
| 2004 JavaOneSM
Conference | Session TS-261437
Distributed Computing Pitfalls
• Coarser grained services
─Group services living in single VM
(usually due to resource sharing i.e. DB pool)
into single (or fewer) Jini™ service(s).
Fewer event notifications to be sent
• Partitioning of service registrations
─Group service registrations to reduce the
number of messages sent by a single
instance of the Lookup Server
Event storming—remedies (cont.)
| 2004 JavaOneSM
Conference | Session TS-261438
Jini™ and J2EE™
• Have Jini environment, but want to
introduce some J2EE™ servers
(or vice-versa). What do you do?
• Deploy webapp that publishes Jini™
service interface similar to EJB™ interface,
but service impl makes EJB local call
• Jini service lookups take the place of
JNDI lookups
─Multiple copies give same result as
clustered directory service
─Can live side-by-side with other APIs:
XML/SOAP, JNDI EJB lookup, etc.
Two great tastes that go great together
| 2004 JavaOneSM
Conference | Session TS-261439
Agenda
Introduction
Orbitz Architecture
Jini™ Technology Benefits
Distributed Computing Pitfalls
What’s Next?
Wrap up
| 2004 JavaOneSM
Conference | Session TS-261440
What’s Next?
• JERI
─Disable distributed garbage collection
─Plugable transports (UDP, SSL)
• Security (per service)
─Authorization
─Authentication
─Replace 2 layers of Jini services with 1
now that we can isolate/restrict access
to services individually
Jini 2.X upgrade
| 2004 JavaOneSM
Conference | Session TS-261441
Let’s See More Code!
• Startup
ServerStarter.start();
SampleService ss = new SampleServiceImpl();
// SampleServiceImpl implements Remote
Exporter e = new BasicJeriExporter(
TCPServerEndpoint.getInstance(0),
new BasicILFactory());
Remote stub = e.export(ss);
DiscoveryManagment ldm =
ServerStarter.getDiscoveryManager();
JoinManager jm = new JoinManager(stub, attributes,
null, ldm, null);
Publishing a Service (Jini 2.X)
| 2004 JavaOneSM
Conference | Session TS-261442
Let’s See More Code! (Cont.)
• Shutdown
e.unexport(stub);
jm.terminate();
ServerStarter.stop();
Publishing a Service (Jini 2.X)
| 2004 JavaOneSM
Conference | Session TS-261443
What’s Next? (Cont.)
• If Jini services use downloaded code,
why can’t all the code be downloadable?
• Introduce standard deployment platform
utilizing benefits of transportable byte-code
─Reconfigure capacity as needed
─Ease deployment across many machines
• Interesting work along these lines:
─Rio—http://rio.jini.org/
─Jini Service Container—http://chiron.jini.org/
Dynamic redeployment
| 2004 JavaOneSM
Conference | Session TS-261444
What’s Next? (Cont.)
• Perhaps change from sync-client-push
to async-server-pull model
─Using JavaSpaces™
─Using JMS™ queue
• Would keep servers from getting
overloaded since they wouldn’t pull
more work than they could handle
• Could have a more heterogeneous
environment of hardware while
maximizing utilization
• Downside is introducing a single point
of failure if the space/queue isn’t really
fault-tolerant
Asynchronous messaging
| 2004 JavaOneSM
Conference | Session TS-261445
Agenda
Introduction
Orbitz Architecture
Jini™ Technology Benefits
Distributed Computing Pitfalls
What’s Next?
Wrap up
| 2004 JavaOneSM
Conference | Session TS-261446
Summary
• Try Jini™ services its:
─A great way for distributed applications to
discover and communicate with each other
─Lightweight, flexible, adaptable, self-healing
─Production ready
─The best kept secret in the Java™ community
program
• J2EE™ platform is not the solution for
every problem
| 2004 JavaOneSM
Conference | Session TS-261447
For More Information
• http://www.orbitz.com/
• http://www.jini.org/
─Strong and helpful community group. Presentations
from 7th community meeting are online for free
─Mailing list/archives
─Download Jini 2.0
• http://research.sun.com/techrep/1994/abstract-
29.html (A Note On Distributed Computing)
• Core Jini, W. Keith Edwards
─ISBN: 0130894087 (Jini 1.X)
• Hard Landing, Thomas Petzinger Jr.
─ISBN: 0812928350 (Airline lore)
| 2004 JavaOneSM
Conference | Session TS-261448
Q&A
48
java.sun.com/javaone/sf
| 2004 JavaOneSM
Conference | Session TS-261449
Jini™ Network
Technology-Enabled
Service-Oriented
Architecture
Leon Chism/Steve Hoffman
Chief Internet Architect/Engineering Fellow
Orbitz
www.orbitz.com
A Low-Cost Alternative to
Enterprise JavaBeans™ (EJB™)
Architecture

Weitere ähnliche Inhalte

Was ist angesagt?

Oracle Enterprise Manager - EM12c R5 Hybrid Cloud Management
Oracle Enterprise Manager - EM12c R5 Hybrid Cloud ManagementOracle Enterprise Manager - EM12c R5 Hybrid Cloud Management
Oracle Enterprise Manager - EM12c R5 Hybrid Cloud ManagementMarketingArrowECS_CZ
 
SWIM MasterClass - Building SWIM B2B web services using Open Standards
SWIM MasterClass - Building SWIM B2B web services using Open StandardsSWIM MasterClass - Building SWIM B2B web services using Open Standards
SWIM MasterClass - Building SWIM B2B web services using Open StandardsDebbie Wilson
 
WebLogic on ODA - Oracle Open World 2013
WebLogic on ODA - Oracle Open World 2013WebLogic on ODA - Oracle Open World 2013
WebLogic on ODA - Oracle Open World 2013Michel Schildmeijer
 
What’s Mule 4.3? How Does Anytime RTF Help? Our insights explain.
What’s Mule 4.3? How Does Anytime RTF Help? Our insights explain. What’s Mule 4.3? How Does Anytime RTF Help? Our insights explain.
What’s Mule 4.3? How Does Anytime RTF Help? Our insights explain. Kellton Tech Solutions Ltd
 
V mware v realize orchestrator 6.0 knowledge transfer kit
V mware v realize orchestrator 6.0 knowledge transfer kitV mware v realize orchestrator 6.0 knowledge transfer kit
V mware v realize orchestrator 6.0 knowledge transfer kitsolarisyougood
 
Acceleration Technology: Taking Media File Transfers From Days to Minutes
Acceleration Technology: Taking Media File Transfers From Days to MinutesAcceleration Technology: Taking Media File Transfers From Days to Minutes
Acceleration Technology: Taking Media File Transfers From Days to MinutesFileCatalyst
 
vCloud Automation Center 6.0 -My Notes on Architecture
vCloud Automation Center 6.0 -My Notes on ArchitecturevCloud Automation Center 6.0 -My Notes on Architecture
vCloud Automation Center 6.0 -My Notes on Architecturetechstarts
 
Diameter progress, popular use cases, roadmap - Mobicents Summit 2011
Diameter progress, popular use cases, roadmap - Mobicents Summit 2011Diameter progress, popular use cases, roadmap - Mobicents Summit 2011
Diameter progress, popular use cases, roadmap - Mobicents Summit 2011telestax
 
Programmability and Automation in Data Center Networks: A talk on Hot Air Bal...
Programmability and Automation in Data Center Networks: A talk on Hot Air Bal...Programmability and Automation in Data Center Networks: A talk on Hot Air Bal...
Programmability and Automation in Data Center Networks: A talk on Hot Air Bal...Joel W. King
 
One tool, two fabrics: Ansible and Nexus 9000
One tool, two fabrics: Ansible and Nexus 9000One tool, two fabrics: Ansible and Nexus 9000
One tool, two fabrics: Ansible and Nexus 9000Joel W. King
 
Oracle WebLogic Server 12.2.1 Do More with Less
Oracle WebLogic Server 12.2.1 Do More with LessOracle WebLogic Server 12.2.1 Do More with Less
Oracle WebLogic Server 12.2.1 Do More with LessEd Burns
 
V mware virtualization design and deploy service
V mware virtualization design and deploy serviceV mware virtualization design and deploy service
V mware virtualization design and deploy servicesolarisyougood
 
V mware v center orchestrator 5.5 knowledge transfer kit
V mware v center orchestrator 5.5 knowledge transfer kitV mware v center orchestrator 5.5 knowledge transfer kit
V mware v center orchestrator 5.5 knowledge transfer kitsolarisyougood
 
【EPN Seminar Nov.10. 2015】 パネルディスカッション その2: BGP Peering Engineering Automatio...
【EPN Seminar Nov.10. 2015】 パネルディスカッション その2: BGP Peering Engineering Automatio...【EPN Seminar Nov.10. 2015】 パネルディスカッション その2: BGP Peering Engineering Automatio...
【EPN Seminar Nov.10. 2015】 パネルディスカッション その2: BGP Peering Engineering Automatio...シスコシステムズ合同会社
 
Eaiesb Migration Approach
Eaiesb Migration ApproachEaiesb Migration Approach
Eaiesb Migration ApproachVijay Reddy
 

Was ist angesagt? (20)

Oracle Enterprise Manager - EM12c R5 Hybrid Cloud Management
Oracle Enterprise Manager - EM12c R5 Hybrid Cloud ManagementOracle Enterprise Manager - EM12c R5 Hybrid Cloud Management
Oracle Enterprise Manager - EM12c R5 Hybrid Cloud Management
 
SWIM MasterClass - Building SWIM B2B web services using Open Standards
SWIM MasterClass - Building SWIM B2B web services using Open StandardsSWIM MasterClass - Building SWIM B2B web services using Open Standards
SWIM MasterClass - Building SWIM B2B web services using Open Standards
 
WebLogic on ODA - Oracle Open World 2013
WebLogic on ODA - Oracle Open World 2013WebLogic on ODA - Oracle Open World 2013
WebLogic on ODA - Oracle Open World 2013
 
What’s Mule 4.3? How Does Anytime RTF Help? Our insights explain.
What’s Mule 4.3? How Does Anytime RTF Help? Our insights explain. What’s Mule 4.3? How Does Anytime RTF Help? Our insights explain.
What’s Mule 4.3? How Does Anytime RTF Help? Our insights explain.
 
V mware v realize orchestrator 6.0 knowledge transfer kit
V mware v realize orchestrator 6.0 knowledge transfer kitV mware v realize orchestrator 6.0 knowledge transfer kit
V mware v realize orchestrator 6.0 knowledge transfer kit
 
Acceleration Technology: Taking Media File Transfers From Days to Minutes
Acceleration Technology: Taking Media File Transfers From Days to MinutesAcceleration Technology: Taking Media File Transfers From Days to Minutes
Acceleration Technology: Taking Media File Transfers From Days to Minutes
 
Storage Management with vRealize Operations
Storage Management with vRealize OperationsStorage Management with vRealize Operations
Storage Management with vRealize Operations
 
vCloud Automation Center 6.0 -My Notes on Architecture
vCloud Automation Center 6.0 -My Notes on ArchitecturevCloud Automation Center 6.0 -My Notes on Architecture
vCloud Automation Center 6.0 -My Notes on Architecture
 
Diameter progress, popular use cases, roadmap - Mobicents Summit 2011
Diameter progress, popular use cases, roadmap - Mobicents Summit 2011Diameter progress, popular use cases, roadmap - Mobicents Summit 2011
Diameter progress, popular use cases, roadmap - Mobicents Summit 2011
 
Programmability and Automation in Data Center Networks: A talk on Hot Air Bal...
Programmability and Automation in Data Center Networks: A talk on Hot Air Bal...Programmability and Automation in Data Center Networks: A talk on Hot Air Bal...
Programmability and Automation in Data Center Networks: A talk on Hot Air Bal...
 
One tool, two fabrics: Ansible and Nexus 9000
One tool, two fabrics: Ansible and Nexus 9000One tool, two fabrics: Ansible and Nexus 9000
One tool, two fabrics: Ansible and Nexus 9000
 
AMIS Oracle OpenWorld 2015 Review – part 3- PaaS Database, Integration, Ident...
AMIS Oracle OpenWorld 2015 Review – part 3- PaaS Database, Integration, Ident...AMIS Oracle OpenWorld 2015 Review – part 3- PaaS Database, Integration, Ident...
AMIS Oracle OpenWorld 2015 Review – part 3- PaaS Database, Integration, Ident...
 
AMIS Oracle OpenWorld 2015 Review – part 2- Hardware & IaaS and PaaS Cloud Fo...
AMIS Oracle OpenWorld 2015 Review – part 2- Hardware & IaaS and PaaS Cloud Fo...AMIS Oracle OpenWorld 2015 Review – part 2- Hardware & IaaS and PaaS Cloud Fo...
AMIS Oracle OpenWorld 2015 Review – part 2- Hardware & IaaS and PaaS Cloud Fo...
 
AMIS Oracle OpenWorld 2015 Review – part 4- PaaS Application Development, Jav...
AMIS Oracle OpenWorld 2015 Review – part 4- PaaS Application Development, Jav...AMIS Oracle OpenWorld 2015 Review – part 4- PaaS Application Development, Jav...
AMIS Oracle OpenWorld 2015 Review – part 4- PaaS Application Development, Jav...
 
Oracle WebLogic Server 12.2.1 Do More with Less
Oracle WebLogic Server 12.2.1 Do More with LessOracle WebLogic Server 12.2.1 Do More with Less
Oracle WebLogic Server 12.2.1 Do More with Less
 
V mware virtualization design and deploy service
V mware virtualization design and deploy serviceV mware virtualization design and deploy service
V mware virtualization design and deploy service
 
V mware v center orchestrator 5.5 knowledge transfer kit
V mware v center orchestrator 5.5 knowledge transfer kitV mware v center orchestrator 5.5 knowledge transfer kit
V mware v center orchestrator 5.5 knowledge transfer kit
 
Tosca explained
Tosca explainedTosca explained
Tosca explained
 
【EPN Seminar Nov.10. 2015】 パネルディスカッション その2: BGP Peering Engineering Automatio...
【EPN Seminar Nov.10. 2015】 パネルディスカッション その2: BGP Peering Engineering Automatio...【EPN Seminar Nov.10. 2015】 パネルディスカッション その2: BGP Peering Engineering Automatio...
【EPN Seminar Nov.10. 2015】 パネルディスカッション その2: BGP Peering Engineering Automatio...
 
Eaiesb Migration Approach
Eaiesb Migration ApproachEaiesb Migration Approach
Eaiesb Migration Approach
 

Andere mochten auch

Enabling Microservices @Orbitz - DevOpsDays Chicago 2015
Enabling Microservices @Orbitz - DevOpsDays Chicago 2015Enabling Microservices @Orbitz - DevOpsDays Chicago 2015
Enabling Microservices @Orbitz - DevOpsDays Chicago 2015Steve Hoffman
 
Enabling Microservice @ Orbitz - GOTO Chicago 2016
Enabling Microservice @ Orbitz - GOTO Chicago 2016Enabling Microservice @ Orbitz - GOTO Chicago 2016
Enabling Microservice @ Orbitz - GOTO Chicago 2016Steve Hoffman
 
Enabling Microservices @Orbitz - DockerCon 2015
Enabling Microservices @Orbitz - DockerCon 2015Enabling Microservices @Orbitz - DockerCon 2015
Enabling Microservices @Orbitz - DockerCon 2015Steve Hoffman
 
Enabling Microservices @Orbitz - Velocity Conf 2015
Enabling Microservices @Orbitz - Velocity Conf 2015Enabling Microservices @Orbitz - Velocity Conf 2015
Enabling Microservices @Orbitz - Velocity Conf 2015Steve Hoffman
 
Chicago Hadoop User Group (CHUG) Presentation on Apache Flume - April 9, 2014
Chicago Hadoop User Group (CHUG) Presentation on Apache Flume - April 9, 2014Chicago Hadoop User Group (CHUG) Presentation on Apache Flume - April 9, 2014
Chicago Hadoop User Group (CHUG) Presentation on Apache Flume - April 9, 2014Steve Hoffman
 
OSGi and Spring Data for simple (Web) Application Development
OSGi and Spring Data  for simple (Web) Application DevelopmentOSGi and Spring Data  for simple (Web) Application Development
OSGi and Spring Data for simple (Web) Application DevelopmentChristian Baranowski
 
Enabling Hybrid Workflows with Docker/Mesos @Orbitz
Enabling Hybrid Workflows with Docker/Mesos @OrbitzEnabling Hybrid Workflows with Docker/Mesos @Orbitz
Enabling Hybrid Workflows with Docker/Mesos @OrbitzSteve Hoffman
 
GDS, The Reason Behind Growth of Airline Industry
GDS, The Reason Behind Growth of Airline IndustryGDS, The Reason Behind Growth of Airline Industry
GDS, The Reason Behind Growth of Airline IndustryDebajani Mohanty
 

Andere mochten auch (8)

Enabling Microservices @Orbitz - DevOpsDays Chicago 2015
Enabling Microservices @Orbitz - DevOpsDays Chicago 2015Enabling Microservices @Orbitz - DevOpsDays Chicago 2015
Enabling Microservices @Orbitz - DevOpsDays Chicago 2015
 
Enabling Microservice @ Orbitz - GOTO Chicago 2016
Enabling Microservice @ Orbitz - GOTO Chicago 2016Enabling Microservice @ Orbitz - GOTO Chicago 2016
Enabling Microservice @ Orbitz - GOTO Chicago 2016
 
Enabling Microservices @Orbitz - DockerCon 2015
Enabling Microservices @Orbitz - DockerCon 2015Enabling Microservices @Orbitz - DockerCon 2015
Enabling Microservices @Orbitz - DockerCon 2015
 
Enabling Microservices @Orbitz - Velocity Conf 2015
Enabling Microservices @Orbitz - Velocity Conf 2015Enabling Microservices @Orbitz - Velocity Conf 2015
Enabling Microservices @Orbitz - Velocity Conf 2015
 
Chicago Hadoop User Group (CHUG) Presentation on Apache Flume - April 9, 2014
Chicago Hadoop User Group (CHUG) Presentation on Apache Flume - April 9, 2014Chicago Hadoop User Group (CHUG) Presentation on Apache Flume - April 9, 2014
Chicago Hadoop User Group (CHUG) Presentation on Apache Flume - April 9, 2014
 
OSGi and Spring Data for simple (Web) Application Development
OSGi and Spring Data  for simple (Web) Application DevelopmentOSGi and Spring Data  for simple (Web) Application Development
OSGi and Spring Data for simple (Web) Application Development
 
Enabling Hybrid Workflows with Docker/Mesos @Orbitz
Enabling Hybrid Workflows with Docker/Mesos @OrbitzEnabling Hybrid Workflows with Docker/Mesos @Orbitz
Enabling Hybrid Workflows with Docker/Mesos @Orbitz
 
GDS, The Reason Behind Growth of Airline Industry
GDS, The Reason Behind Growth of Airline IndustryGDS, The Reason Behind Growth of Airline Industry
GDS, The Reason Behind Growth of Airline Industry
 

Ähnlich wie TS-2614 - Jini™ Network Technology-Enabled Service-Oriented Architecture, A Low-Cost Alternative to Enterprise JavaBeans™ (EJB™) Architecture

Server Farms and XML Web Services
Server Farms and XML Web ServicesServer Farms and XML Web Services
Server Farms and XML Web ServicesJorgen Thelin
 
Accelerating the Deployment of Practical, Programmable Transport Networks
Accelerating the Deployment of Practical, Programmable Transport NetworksAccelerating the Deployment of Practical, Programmable Transport Networks
Accelerating the Deployment of Practical, Programmable Transport NetworksDeborah Porchivina
 
Service Fabric – building tomorrows applications today
Service Fabric – building tomorrows applications todayService Fabric – building tomorrows applications today
Service Fabric – building tomorrows applications todayBizTalk360
 
The Third Network: LSO, SDN and NFV
The Third Network: LSO, SDN and NFVThe Third Network: LSO, SDN and NFV
The Third Network: LSO, SDN and NFVOPNFV
 
TechWiseTV Workshop: Enterprise NFV
TechWiseTV Workshop: Enterprise NFVTechWiseTV Workshop: Enterprise NFV
TechWiseTV Workshop: Enterprise NFVRobb Boyd
 
PLNOG15 :Assuring Performance, Scalability and Reliability in NFV Deployments...
PLNOG15 :Assuring Performance, Scalability and Reliability in NFV Deployments...PLNOG15 :Assuring Performance, Scalability and Reliability in NFV Deployments...
PLNOG15 :Assuring Performance, Scalability and Reliability in NFV Deployments...PROIDEA
 
PLNOG15 :Assuring Performance, Scalability and Reliability in NFV Deployments...
PLNOG15 :Assuring Performance, Scalability and Reliability in NFV Deployments...PLNOG15 :Assuring Performance, Scalability and Reliability in NFV Deployments...
PLNOG15 :Assuring Performance, Scalability and Reliability in NFV Deployments...Marta Pacyga
 
Netflix0SS Services on Docker
Netflix0SS Services on DockerNetflix0SS Services on Docker
Netflix0SS Services on DockerDocker, Inc.
 
Ibm cloud nativenetflixossfinal
Ibm cloud nativenetflixossfinalIbm cloud nativenetflixossfinal
Ibm cloud nativenetflixossfinalaspyker
 
Container Orchestration with Traefk on Docker Swarm
Container Orchestration with Traefk on Docker SwarmContainer Orchestration with Traefk on Docker Swarm
Container Orchestration with Traefk on Docker SwarmJakub Hajek
 
Oif at iir_next_genopticalnetworking_nice_22june15_jmcdonough
Oif at iir_next_genopticalnetworking_nice_22june15_jmcdonoughOif at iir_next_genopticalnetworking_nice_22june15_jmcdonough
Oif at iir_next_genopticalnetworking_nice_22june15_jmcdonoughDeborah Porchivina
 
Introducing ONAP for OpenStack St Louis Meetup
Introducing ONAP for OpenStack St Louis MeetupIntroducing ONAP for OpenStack St Louis Meetup
Introducing ONAP for OpenStack St Louis Meetupdjzook
 
NetflixOSS for Triangle Devops Oct 2013
NetflixOSS for Triangle Devops Oct 2013NetflixOSS for Triangle Devops Oct 2013
NetflixOSS for Triangle Devops Oct 2013aspyker
 
Azure service fabric overview
Azure service fabric overviewAzure service fabric overview
Azure service fabric overviewBaskar rao Dsn
 
Pace of Innovation at AWS - London Summit Enteprise Track RePlay
Pace of Innovation at AWS - London Summit Enteprise Track RePlayPace of Innovation at AWS - London Summit Enteprise Track RePlay
Pace of Innovation at AWS - London Summit Enteprise Track RePlayAmazon Web Services
 
Stay productive while slicing up the monolith
Stay productive while slicing up the monolithStay productive while slicing up the monolith
Stay productive while slicing up the monolithMarkus Eisele
 
Netflix Cloud Platform and Open Source
Netflix Cloud Platform and Open SourceNetflix Cloud Platform and Open Source
Netflix Cloud Platform and Open Sourceaspyker
 

Ähnlich wie TS-2614 - Jini™ Network Technology-Enabled Service-Oriented Architecture, A Low-Cost Alternative to Enterprise JavaBeans™ (EJB™) Architecture (20)

Server Farms and XML Web Services
Server Farms and XML Web ServicesServer Farms and XML Web Services
Server Farms and XML Web Services
 
Accelerating the Deployment of Practical, Programmable Transport Networks
Accelerating the Deployment of Practical, Programmable Transport NetworksAccelerating the Deployment of Practical, Programmable Transport Networks
Accelerating the Deployment of Practical, Programmable Transport Networks
 
Service Fabric – building tomorrows applications today
Service Fabric – building tomorrows applications todayService Fabric – building tomorrows applications today
Service Fabric – building tomorrows applications today
 
Designing microservices
Designing microservicesDesigning microservices
Designing microservices
 
The Third Network: LSO, SDN and NFV
The Third Network: LSO, SDN and NFVThe Third Network: LSO, SDN and NFV
The Third Network: LSO, SDN and NFV
 
TechWiseTV Workshop: Enterprise NFV
TechWiseTV Workshop: Enterprise NFVTechWiseTV Workshop: Enterprise NFV
TechWiseTV Workshop: Enterprise NFV
 
PLNOG15 :Assuring Performance, Scalability and Reliability in NFV Deployments...
PLNOG15 :Assuring Performance, Scalability and Reliability in NFV Deployments...PLNOG15 :Assuring Performance, Scalability and Reliability in NFV Deployments...
PLNOG15 :Assuring Performance, Scalability and Reliability in NFV Deployments...
 
PLNOG15 :Assuring Performance, Scalability and Reliability in NFV Deployments...
PLNOG15 :Assuring Performance, Scalability and Reliability in NFV Deployments...PLNOG15 :Assuring Performance, Scalability and Reliability in NFV Deployments...
PLNOG15 :Assuring Performance, Scalability and Reliability in NFV Deployments...
 
Azure Service Fabric Overview
Azure Service Fabric OverviewAzure Service Fabric Overview
Azure Service Fabric Overview
 
Netflix0SS Services on Docker
Netflix0SS Services on DockerNetflix0SS Services on Docker
Netflix0SS Services on Docker
 
Ibm cloud nativenetflixossfinal
Ibm cloud nativenetflixossfinalIbm cloud nativenetflixossfinal
Ibm cloud nativenetflixossfinal
 
Container Orchestration with Traefk on Docker Swarm
Container Orchestration with Traefk on Docker SwarmContainer Orchestration with Traefk on Docker Swarm
Container Orchestration with Traefk on Docker Swarm
 
Oif at iir_next_genopticalnetworking_nice_22june15_jmcdonough
Oif at iir_next_genopticalnetworking_nice_22june15_jmcdonoughOif at iir_next_genopticalnetworking_nice_22june15_jmcdonough
Oif at iir_next_genopticalnetworking_nice_22june15_jmcdonough
 
Introducing ONAP for OpenStack St Louis Meetup
Introducing ONAP for OpenStack St Louis MeetupIntroducing ONAP for OpenStack St Louis Meetup
Introducing ONAP for OpenStack St Louis Meetup
 
NetflixOSS for Triangle Devops Oct 2013
NetflixOSS for Triangle Devops Oct 2013NetflixOSS for Triangle Devops Oct 2013
NetflixOSS for Triangle Devops Oct 2013
 
Azure service fabric overview
Azure service fabric overviewAzure service fabric overview
Azure service fabric overview
 
Pace of Innovation at AWS - London Summit Enteprise Track RePlay
Pace of Innovation at AWS - London Summit Enteprise Track RePlayPace of Innovation at AWS - London Summit Enteprise Track RePlay
Pace of Innovation at AWS - London Summit Enteprise Track RePlay
 
Micro services
Micro servicesMicro services
Micro services
 
Stay productive while slicing up the monolith
Stay productive while slicing up the monolithStay productive while slicing up the monolith
Stay productive while slicing up the monolith
 
Netflix Cloud Platform and Open Source
Netflix Cloud Platform and Open SourceNetflix Cloud Platform and Open Source
Netflix Cloud Platform and Open Source
 

Mehr von Steve Hoffman

Nerd Out with Hadoop: A Not-So-Basic Introduction to the Platform
Nerd Out with Hadoop: A Not-So-Basic Introduction to the PlatformNerd Out with Hadoop: A Not-So-Basic Introduction to the Platform
Nerd Out with Hadoop: A Not-So-Basic Introduction to the PlatformSteve Hoffman
 
Combating DNS Exfiltration in AWS - AWS Midwest Community Day 2018
Combating DNS Exfiltration in AWS - AWS Midwest Community Day 2018Combating DNS Exfiltration in AWS - AWS Midwest Community Day 2018
Combating DNS Exfiltration in AWS - AWS Midwest Community Day 2018Steve Hoffman
 
Combating DNS Exfiltration in AWS - BSidesChicago 2018
Combating DNS Exfiltration in AWS - BSidesChicago 2018Combating DNS Exfiltration in AWS - BSidesChicago 2018
Combating DNS Exfiltration in AWS - BSidesChicago 2018Steve Hoffman
 
How Open Source is Transforming the Internet. Again.
How Open Source is Transforming the Internet. Again.How Open Source is Transforming the Internet. Again.
How Open Source is Transforming the Internet. Again.Steve Hoffman
 
flAWS Walkthrough - AWS Chicago Meetup 8/8/2017
flAWS Walkthrough - AWS Chicago Meetup 8/8/2017flAWS Walkthrough - AWS Chicago Meetup 8/8/2017
flAWS Walkthrough - AWS Chicago Meetup 8/8/2017Steve Hoffman
 

Mehr von Steve Hoffman (6)

Byte Sized Rust
Byte Sized RustByte Sized Rust
Byte Sized Rust
 
Nerd Out with Hadoop: A Not-So-Basic Introduction to the Platform
Nerd Out with Hadoop: A Not-So-Basic Introduction to the PlatformNerd Out with Hadoop: A Not-So-Basic Introduction to the Platform
Nerd Out with Hadoop: A Not-So-Basic Introduction to the Platform
 
Combating DNS Exfiltration in AWS - AWS Midwest Community Day 2018
Combating DNS Exfiltration in AWS - AWS Midwest Community Day 2018Combating DNS Exfiltration in AWS - AWS Midwest Community Day 2018
Combating DNS Exfiltration in AWS - AWS Midwest Community Day 2018
 
Combating DNS Exfiltration in AWS - BSidesChicago 2018
Combating DNS Exfiltration in AWS - BSidesChicago 2018Combating DNS Exfiltration in AWS - BSidesChicago 2018
Combating DNS Exfiltration in AWS - BSidesChicago 2018
 
How Open Source is Transforming the Internet. Again.
How Open Source is Transforming the Internet. Again.How Open Source is Transforming the Internet. Again.
How Open Source is Transforming the Internet. Again.
 
flAWS Walkthrough - AWS Chicago Meetup 8/8/2017
flAWS Walkthrough - AWS Chicago Meetup 8/8/2017flAWS Walkthrough - AWS Chicago Meetup 8/8/2017
flAWS Walkthrough - AWS Chicago Meetup 8/8/2017
 

Kürzlich hochgeladen

WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brandgvaughan
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Commit University
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningLars Bell
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubKalema Edgar
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek SchlawackFwdays
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsMark Billinghurst
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Mattias Andersson
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Mark Simos
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Manik S Magar
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 3652toLead Limited
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyAlfredo García Lavilla
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity PlanDatabarracks
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024Stephanie Beckett
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii SoldatenkoFwdays
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenHervé Boutemy
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr BaganFwdays
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Enterprise Knowledge
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteDianaGray10
 

Kürzlich hochgeladen (20)

WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brand
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine Tuning
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding Club
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR Systems
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easy
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity Plan
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache Maven
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test Suite
 

TS-2614 - Jini™ Network Technology-Enabled Service-Oriented Architecture, A Low-Cost Alternative to Enterprise JavaBeans™ (EJB™) Architecture

  • 1. java.sun.com/javaone/sf | 2004 JavaOneSM Conference | Session TS-26141 Jini™ Network Technology-Enabled Service-Oriented Architecture Leon Chism/Steve Hoffman Chief Internet Architect/Engineering Fellow Orbitz www.orbitz.com A Low-Cost Alternative to Enterprise JavaBeans™ (EJB™) Architecture
  • 2. | 2004 JavaOneSM Conference | Session TS-26142 Goal Increase your understanding of Jini™ network technology distributed computing architectures, how they can facilitate competitive advantage, and how they can be used to replace/augment more expensive alternatives.
  • 3. | 2004 JavaOneSM Conference | Session TS-26143 Orbitz’s Commitment to Jini™ Network Technology Or why am I listening to you? • Orbitz runs over 1300 Jini™ services used by over 300 client VMs • Orbitz’ Jini™ network technology-based architecture powers Orbitz.com, AA.com and NWA.com, making it one of the highest-volume processors of airline tickets • Jini™ services have achieved 99+% uptime (best uptime of all sub-systems at Orbitz)
  • 4. | 2004 JavaOneSM Conference | Session TS-26144 Agenda Introduction Orbitz Architecture Jini™ Technology Benefits Distributed Computing Pitfalls What’s Next? Wrap up
  • 5. | 2004 JavaOneSM Conference | Session TS-26145 Agenda Introduction Orbitz Architecture Jini™ Technology Benefits Distributed Computing Pitfalls What’s Next? Wrap up
  • 6. | 2004 JavaOneSM Conference | Session TS-26146 Orbitz Overview • Founded in 2000 by 5 leading airlines • Site launched in 2001 • Top 3 brand travel site in just over two years • 22 MM registered users and strong monthly traffic • Poised to extend strength in air to other products • Positive cash flow from operations since Q4 2002 • Public offering on 12/17/03
  • 7. | 2004 JavaOneSM Conference | Session TS-26147 2001 Orbitz 8% Expe dia 31% Other 28% Travel ocity 33% Rapidly Approaching #2 Position Based on gross travel bookings Source: PhoCusWright Jan 1–Jun 30 2003 Orbitz 17% Expe dia 40% Other 23% Travel ocity 20%
  • 8. | 2004 JavaOneSM Conference | Session TS-26148 Architectural Drivers • Low-cost distributor • Speed to market is critical • Flexibility of the application • Robustness ─Availability ─Reliability
  • 9. | 2004 JavaOneSM Conference | Session TS-26149 Why Use Jini™ Network Technology? • Enables automatic failover and recovery • Scales horizontally • Lookup capabilities ─Typed ─Interface-based • Functionality didn’t require transactions • Automatic load balancing • Self-healing • Low-cost (no license costs)
  • 10. | 2004 JavaOneSM Conference | Session TS-261410 Agenda Introduction Orbitz Architecture Jini™ Technology Benefits Distributed Computing Pitfalls What’s Next? Wrap up
  • 11. | 2004 JavaOneSM Conference | Session TS-261411 Orbitz Architecture Mile-high view Presentation / State / Persistence Webapp Web Services IVR / Messaging Apache Weblogic Oracle Generic Services Air Services Hotel Services Car Services Supplier— Specific Services GDS X Service Airline X Service Airline Y Service GDS Y Service Hotel Switch X Service Hotel Switch Y Service Jini wrappers around legacy systems and internally hosted J2EE systems
  • 12. | 2004 JavaOneSM Conference | Session TS-261412 Supplier Link Single host system (i.e. AA.com/NWA.com)
  • 13. | 2004 JavaOneSM Conference | Session TS-261413 SLONEGOrbitz.com WebLogic App Server ONEG Server Logging Service Wspan AA CO NW HP US Pegs TWeb Discover Publish Publish Log Log Log Discover ONeG—The Big Switch Putting it all together LUS LUS LUS Logging Service LUS LUS LUS LUS Logging Service Logging Service Logging Service Logging Service Log WebLogic App Server WebLogic App Server WebLogic App Server WebLogic App Server WebLogic App Server Hotel- Oneg Server Other Services Other Services Other Services ONEG Server ONEG Server ONEG Server
  • 14. | 2004 JavaOneSM Conference | Session TS-261414 ONeG—Design Decisions • Client could have contacted host specific services directly • Was decided to put failure/retry logic in the booking engine, not push on the client due to hot reconfiguration requirements • Business event logging at ONeG layer • Use network layer security to restrict access to supplier specific layer Switch or router?
  • 15. | 2004 JavaOneSM Conference | Session TS-261415 High-Level Architecture Diagram Novo System (incl. orbitz.com AA Hosting System (connects only to Sabre AA) aa.com Orbitz Supplier Link System nw a.com JiniSLServicesi/f JiniSLServicesi/f NW Hosting System (connects only to WorldSpan) JiniSLServicesi/f ONeG / Hotel (Rate request, content, search) JiniSLServicesi/f Kinetics Shares CO HP 1P World Span (NW) Bookings DB Site DB Orbitz Merchant Hotels (OMH) Pegasus (external) JiniSLServicesi/f Sabre AA US Notification Jinii/f Kinetics Servleti/f SMTP Service Notshown Reporting Monitoring/mgt/admin Customer Care Other agent desktop usage Gatew ay Partners Advertising Represents request/response where the request is made in the indicated direction ITA Clear Commerce RPS ONeG (Air, Car, Hotel Bookings) IVR Service "Public"HTTPi/f Fulf illment Serv leti/f Hotel Reference Hotel DB (Rate Cache) Internet Smart Proxy Jinisurrogate Notif ica -tion Serv er Web-siteFront-ends SupplierSystem "Third-parties" OAG Flifo Servleti/f Flif o Serv er Flif o Jinii/f J2EE Jini
  • 16. | 2004 JavaOneSM Conference | Session TS-261416 The General Idea Combine common set of objects, service interfaces and JiniSM services to create blocks of reusable functionality.
  • 17. | 2004 JavaOneSM Conference | Session TS-261417 The General Idea (Cont.) • Common objects ─AIRPORT ─CARRIER • Service interfaces ─LowFareSearchRequest ─AirPurchaseRequest • Mask framework details with simple Factory ─ServiceImpl = OrbitzFactory.get(serviceInterface); • Simple configuration (at least for client) ─VersionAttribute String ─List of lookup servers OR list of multicast groups
  • 18. | 2004 JavaOneSM Conference | Session TS-261418 The General Idea (Cont.) • Response (and objects contained) are core objects or interfaces are immutable • Underlying implementations typically have much more information than is exposed to client • Services are all transient and non-activatable hence completely interchangeable • No transactions Things to note:
  • 19. | 2004 JavaOneSM Conference | Session TS-261419 Let’s See Some Code! • Startup ClientStarter.start(); • Shutdown ClientStarter.stop(); • Sample transaction SampleServiceRequest req = OrbitzFactory.get(SampleServiceRequest.class); req.setFoo(foo); req.setBar(bar); SampleServiceResponse resp = req.execute(); baz = resp.getBaz(); Client’s perspective:
  • 20. | 2004 JavaOneSM Conference | Session TS-261420 Say What? Show Me a Picture…. req = OrbitzFactory.get(FooRequest); req.setXXX(xxx); ObjectFactory Jini Service http codebase server FooRequestImpl resp = req.execute(); resp.getYYY(); remote = OrbitzFactory.get(FooRemote); return remote.execute(req); FooRemote Jini Service FooResponseImpl
  • 21. | 2004 JavaOneSM Conference | Session TS-261421 Let’s See More Code! • Startup ServerStarter.start(); SampleService ss = new SampleServiceImpl(); // SampleServiceImpl extends UnicastRemoteObject // Need to run rmic to generate _Stub class DiscoveryManagment ldm = ServerStarter.getDiscoveryManager(); // Most likely LookupDiscoveryManager JoinManager jm = new JoinManager(ss, attributes, null, ldm, null); // attributes is an Entry[] which includes // things like VersionAttribute Publishing a Service (Jini 1.X)
  • 22. | 2004 JavaOneSM Conference | Session TS-261422 Let’s See More Code! • Shutdown UnicastRemoteObject.unexport(ss, false); jm.terminate(); ServerStarter.stop(); Publishing a Service (Jini 1.X) (cont.)
  • 23. | 2004 JavaOneSM Conference | Session TS-261423 Agenda Introduction Orbitz Architecture Jini™ Technology Benefits Distributed Computing Pitfalls What’s Next? Wrap up
  • 24. | 2004 JavaOneSM Conference | Session TS-261424 Jini™ Technology Benefits • Designed to expect network failure (not ignore that it happens) • Multicast discovery mechanism of Lookup Server ensures <1 minute discovery (heartbeat) • Services come and go. Have many places to go to get serviced Self-healing
  • 25. | 2004 JavaOneSM Conference | Session TS-261425 Jini™ Technology Benefits • LookupCache and ServiceDiscoveryManager use random selection when single service is requested and there are multiple matches • Over time this results in an even load distribution of load on identical services Automatic load balancing
  • 26. | 2004 JavaOneSM Conference | Session TS-261426 Jini™ Technology Benefits • Capacity is directly related to the number of places a client can go to fulfil a service request • If you need more capacity of a particular service, just start more instances • Each LookupCache gets notified of new service and load is redistributed across new set Horizontal scalability
  • 27. | 2004 JavaOneSM Conference | Session TS-261427 Jini™ Technology Benefits • Easy to publish a service • Easy to find a service • Catch RemoteException and discard proxy when something goes wrong Lightweight
  • 28. | 2004 JavaOneSM Conference | Session TS-261428 Agenda Introduction Orbitz Architecture Jini™ Technology Benefits Distributed Computing Pitfalls What’s Next? Wrap up
  • 29. | 2004 JavaOneSM Conference | Session TS-261429 Distributed Computing Pitfalls • We don’t use remote objects • No way to turn it off in JRMP implementation of RMI (Jini versions 1.X) • Default 1 minute DGC interval kills any heap optimizations • Accounts for anywhere between 50-75% of the threads in our system RMI Distributed Garbage Collection
  • 30. | 2004 JavaOneSM Conference | Session TS-261430 Distributed Computing Pitfalls • Make DGC interval longer or disable explicit GC (we saw a 1.5% improvement in VM throughput when using -XX:+DisableExplicitGC— time spent running code vs doing GC) • Upgrade to Jini 2.X and use JERI so we can disable DGC RMI DGC—possible remedies
  • 31. | 2004 JavaOneSM Conference | Session TS-261431 Distributed Computing Pitfalls • Contributed implementation designed to wait until things aren’t changing before answering • Implemented with big reader’s/writer lock • Not common, but annoying when LookupCache/ServiceDiscoveryManager drops all discovered services when lease to lookup server cannot be renewed Reggie lockouts
  • 32. | 2004 JavaOneSM Conference | Session TS-261432 Distributed Computing Pitfalls • Longer lease times • Custom implementation of lookup server that doesn’t have reader’s/writer lock. Won’t get best picture of state of services, but isn’t necessary in our system Reggie lockouts—possible remedies
  • 33. | 2004 JavaOneSM Conference | Session TS-261433 Distributed Computing Pitfalls • If a machine gets slow, random selection will eventually put all requests on the slow machine • Also a problem in heterogeneous environments Randomized load balancing
  • 34. | 2004 JavaOneSM Conference | Session TS-261434 Distributed Computing Pitfalls • Switch from sync. calls to async so a push to a service becomes a pull. Use a JavaSpaces™ or JMS™ queue • Publish Attribute with notion of relative capacity in conjunction with ServiceItemFilter on client side to adjust spread of service calls more in-line with machine’s relative abilities Randomized load balancing—possible remedies
  • 35. | 2004 JavaOneSM Conference | Session TS-261435 Distributed Computing Pitfalls • LookupCache uses event notification to keep local VM cache up to date • If large number of clients/lookup servers/services, the math gets big—e.g.: ─100 app servers (service clients) * 2 lookup servers * 30 services/VM * 20 VMs = 120,000 messages • Contributed implementation of Lookup Server does in-order delivery of notifications which involves a linear scan of a single list of messages to send out Event storming using the LookupCache
  • 36. | 2004 JavaOneSM Conference | Session TS-261436 Distributed Computing Pitfalls • Custom LookupCache that doesn’t use event notifications: ─Every client probably doesn’t need more than 3-4 places to go for a particular service type at any time ─Auto-expire entries based on time or number of calls to get same randomization ─Backfill with more services as current ones become invalid • Custom Lookup Server with event module optimized for throughput of in-order event notification Event storming—remedies
  • 37. | 2004 JavaOneSM Conference | Session TS-261437 Distributed Computing Pitfalls • Coarser grained services ─Group services living in single VM (usually due to resource sharing i.e. DB pool) into single (or fewer) Jini™ service(s). Fewer event notifications to be sent • Partitioning of service registrations ─Group service registrations to reduce the number of messages sent by a single instance of the Lookup Server Event storming—remedies (cont.)
  • 38. | 2004 JavaOneSM Conference | Session TS-261438 Jini™ and J2EE™ • Have Jini environment, but want to introduce some J2EE™ servers (or vice-versa). What do you do? • Deploy webapp that publishes Jini™ service interface similar to EJB™ interface, but service impl makes EJB local call • Jini service lookups take the place of JNDI lookups ─Multiple copies give same result as clustered directory service ─Can live side-by-side with other APIs: XML/SOAP, JNDI EJB lookup, etc. Two great tastes that go great together
  • 39. | 2004 JavaOneSM Conference | Session TS-261439 Agenda Introduction Orbitz Architecture Jini™ Technology Benefits Distributed Computing Pitfalls What’s Next? Wrap up
  • 40. | 2004 JavaOneSM Conference | Session TS-261440 What’s Next? • JERI ─Disable distributed garbage collection ─Plugable transports (UDP, SSL) • Security (per service) ─Authorization ─Authentication ─Replace 2 layers of Jini services with 1 now that we can isolate/restrict access to services individually Jini 2.X upgrade
  • 41. | 2004 JavaOneSM Conference | Session TS-261441 Let’s See More Code! • Startup ServerStarter.start(); SampleService ss = new SampleServiceImpl(); // SampleServiceImpl implements Remote Exporter e = new BasicJeriExporter( TCPServerEndpoint.getInstance(0), new BasicILFactory()); Remote stub = e.export(ss); DiscoveryManagment ldm = ServerStarter.getDiscoveryManager(); JoinManager jm = new JoinManager(stub, attributes, null, ldm, null); Publishing a Service (Jini 2.X)
  • 42. | 2004 JavaOneSM Conference | Session TS-261442 Let’s See More Code! (Cont.) • Shutdown e.unexport(stub); jm.terminate(); ServerStarter.stop(); Publishing a Service (Jini 2.X)
  • 43. | 2004 JavaOneSM Conference | Session TS-261443 What’s Next? (Cont.) • If Jini services use downloaded code, why can’t all the code be downloadable? • Introduce standard deployment platform utilizing benefits of transportable byte-code ─Reconfigure capacity as needed ─Ease deployment across many machines • Interesting work along these lines: ─Rio—http://rio.jini.org/ ─Jini Service Container—http://chiron.jini.org/ Dynamic redeployment
  • 44. | 2004 JavaOneSM Conference | Session TS-261444 What’s Next? (Cont.) • Perhaps change from sync-client-push to async-server-pull model ─Using JavaSpaces™ ─Using JMS™ queue • Would keep servers from getting overloaded since they wouldn’t pull more work than they could handle • Could have a more heterogeneous environment of hardware while maximizing utilization • Downside is introducing a single point of failure if the space/queue isn’t really fault-tolerant Asynchronous messaging
  • 45. | 2004 JavaOneSM Conference | Session TS-261445 Agenda Introduction Orbitz Architecture Jini™ Technology Benefits Distributed Computing Pitfalls What’s Next? Wrap up
  • 46. | 2004 JavaOneSM Conference | Session TS-261446 Summary • Try Jini™ services its: ─A great way for distributed applications to discover and communicate with each other ─Lightweight, flexible, adaptable, self-healing ─Production ready ─The best kept secret in the Java™ community program • J2EE™ platform is not the solution for every problem
  • 47. | 2004 JavaOneSM Conference | Session TS-261447 For More Information • http://www.orbitz.com/ • http://www.jini.org/ ─Strong and helpful community group. Presentations from 7th community meeting are online for free ─Mailing list/archives ─Download Jini 2.0 • http://research.sun.com/techrep/1994/abstract- 29.html (A Note On Distributed Computing) • Core Jini, W. Keith Edwards ─ISBN: 0130894087 (Jini 1.X) • Hard Landing, Thomas Petzinger Jr. ─ISBN: 0812928350 (Airline lore)
  • 48. | 2004 JavaOneSM Conference | Session TS-261448 Q&A 48
  • 49. java.sun.com/javaone/sf | 2004 JavaOneSM Conference | Session TS-261449 Jini™ Network Technology-Enabled Service-Oriented Architecture Leon Chism/Steve Hoffman Chief Internet Architect/Engineering Fellow Orbitz www.orbitz.com A Low-Cost Alternative to Enterprise JavaBeans™ (EJB™) Architecture