Quickly configuring a
demo-ready instance of DE/SM
FOR INTERNAL USE ONLY
Audience
- Sales Engineering
- Support
- PSO
- QA
Last Revised by
Caveats
- Instructions below can shorten your "config time", at the expense
of certain assumptions about configuration choices
- Refer to shipping documentation as the authoritative source.
- Best viewed with Internet Explorer
(Mozilla is unhappy with file:// URLs, at least here)
Acknowledgements
- Andy Goldstein
- Mike Cardella
- Jim Lam and Ryan Coughlin
Contents
1. Getting Started (bootstrapping into a
successful base configuration)
2. Demo Configurations (one-time
setups to create
"demo candy")
3. Demonstration Scripts
(These abbreviated instructions probably only make sense to the
author -- feedback's always welcome)
4. Transports
1. Getting Started
Configuring
OS and DB (Win32 laptop)
OS
Patch to the latest
SQL-Server 2000
Get the
bits (or see IT dept)
Install using: admin / de
Choose defaults, except:
local system acct
Both or SQL Server (not just
windows auth)
ensure port=tcp/1433
I don't believe you need (Win32 OS) admin rights before installing DE,
but I'm not sure.
Starting Service Manager on a Win32
laptop
(assumes all prereqs are on 1 box)
Do not change host IP addr (whether LAN, VPN or local)
while installing DE/SM
- If host IP is volatile, MP's had (have?)
trouble resarting (mreiser reported to [email protected] in
Oct2003. Fixed yet?)
1. Start pre-reqs in any order:
- delete any DE state files
($DIGEV_HOME\state\*.*) possibly left over from previous DE/SM
invocation
- ActivePorts (see Free technical Resources, above)
- To verify MP are up(LISTEN) or
down(and not hung (TIME_WAIT)
- TaskManager
- If using JMS
from Sun, then run:
- j2ee.bat -verbose (to confirm
DE/SM-related factory/dest's)
2. Start these in this order:
- db
- Service Manager
- All subsystems (if problems,
start only PM first)
- MP(s)
3. Start these in any order:
- Console
- MP(s)
- Sample Application (Account Manager)
4. Login to the Console
- Control-N to invoke a 2nd console window (for
quick context-changing as needed with customers)
2. Demo-Related
Configurations
Sample Pipeline Templates
Console > Manage > Pipeline Templates > Add Pipeline Template
| Name |
Description |
Request |
Response |
| Acme Standard Monitoring |
Record SOAP traffic and Monitor
usage |
- Record: Request from consumer
|
- Record: Response from Service
- Usage
|
| Acme Standard Security |
Authenticate request using SAML,
and
encrypt response |
- Authenticate using SAML
- Record Name: Request from consumer
|
- Encrypt with DES
- Record: Response from service operation
- Usage
|
Alert
Manager > SLA's and Contracts
- Create four new triplets of [SLA Policy / SLA / Contract]
- Important: Ensure
operation(s) have Usage in their associated
pipeline(s)
- For the full story, see this
(4Mbyte) slidedeck
and read the Notes Pages on each
slide.
SLA Policy:
Name
|
Description |
| Count |
Alert when the service operation
is consumed
more than 10 times in any hour
|
| Fault |
Alert when the service operation
faults more
than 5
times in any week |
| Message Size |
Alert when the service
operation's request
message size exceeds 1000 bytes in any hour |
| Responsiveness |
Alert when the service
operation's average
response time ever exceeds 500ms |
Locked SLA's will inherit changes to their
"upstream" Policy
| Name |
Description |
| Count |
Inherits the count-based Policy |
| Fault |
Inherits the fault-based Policy |
| Message Size |
Inherits the message size Policy |
| Responsiveness |
Inherits the
responsiveness Policy |
Contracts tie SLA's to Users
| Name |
Description |
| Count |
Offer the Count-based SLA to
Matthew, Jim, Ryan and Administrator
|
Fault
|
Offer the Fault-based SLA to
Matthew, Jim, Ryan and Administrator |
Message Size
|
Offer the Message Size-based SLA
to Matthew, Jim, Ryan and Administrator |
Responsiveness
|
Offer the Responsiveness-based
SLA to Matthew, Jim, Ryan and Administrator |
Alert
Manager - Setting up a workflow
To create a workflow using SNMP alerting,
email, and an executable script (batch file), do this:
Alerts
Email Group
- Digital Evoution (via mail.yahoo.com)
- [email protected], [email protected]
- Host: smtp.mail.yahoo.com (or 10.1.20.16, our mail server
(LAEXCH))
- Port: 25
- Verify and check mail for test message from Alert Manager
SNMP Hosts
- localhost
- 162
- community string =
"public"
- Get a free SNMP
manager
Management Script
- Sample script name:
Notify-Operations-Team.bat:
- Sample (AM>Alerts>Management Scripts>) Parameter List:
$AlertId, Time:
$AlertSentTimestamp, Description: $AlertDescription ($AlertCode
$AlertCodeAdditionalInfo)
- Sample script contents:
@echo %1 %2 %3 %4 %5 %6
>> c:\Notify-Operations-Team.txt
Alert Codes
- Customize workflow for Alert Code 20104 or 20504 (these alerts
are easily
reproducible "demo candy")
- Fill in the blanks to set up workflow (e.g. SNMP, email, script)
Alerts
- Export Alerts (to trigger 20104) --or-- Export Audit Trails (to
trigger 20504)
- Check for proper workflow execution (e.g. SNMP, email, script)
based on your earlier config work, above.
Now create your custom Alert
Codes....
Alert Manager > Alerts > Alert
Codes > Add...
Component
|
Subsystem
|
Description
|
Additional
Info (wrongly overwritten in 2.3.0)
|
| Management Point |
Alert Manager |
Count > 10 in any hour
|
Custom alert generated by "SLA -
Count"
|
| Management Point |
Alert Manager |
Faults > 5
in any week
|
Custom alert generated by "SLA -
Faults"
|
| Management Point |
Alert Manager |
Request Message Size
exceeds 2k in any hour |
Custom alert generated by "SLA -
Message Size" |
| Management Point |
Alert Manager |
Average Response Time > 500ms
ever
|
Custom alert generated by "SLA -
Responsiveness"
|
Policy Manager
Sample
contracts...
Console > Policy Manger > Manage > Contracts
| Contract Name |
Description |
Hour |
| 1 - Weekday |
Available Mon-Fri, 9:00am-5:00pm |
9-17 |
| 2 - Weekend |
Available Sat-Sun, 9:00am-5:00pm |
9-17 |
3 - Evening
|
Available Mon-Fri,
5:00pm-midnight |
17-24 |
| 4 - Maintenance |
Available Mon-Sun,
midnight-5:00am |
0-5 |
| 5 - Unlimited |
Rock-n-Roll all night, Party
ev'ry day |
0-24 |
| 6 - Countdown |
Invokable at most 1000 times |
(n/a)
|
Sample
WS consumer applications/users...
Console > Policy Manger > Manage > Users
| User Name |
Full Name |
Priv
|
Contract
|
| Customer Portal |
CustomerPortal |
OP - Account Manager v1.*
(Access)
|
Unlimited
|
| Employee Portal |
EmployeePortal |
OP - Account Manager v1.*
(Access) |
Weekdays
|
Alice
|
Priviledged to use only the
Alert Manager
|
AM - Administrator (All) |
Unlimited
|
Polly
|
Priviledged to use only the
Policy
Manager
|
PM - Administrator (All) |
Unlimited
|
Reggie
|
Priviledged to use only the
Registry
Manager
|
RM - Administrator (All) |
Unlimited
|
Registry Manager
Sample
Providers...
Console > Registry Manager > Publish > Providers
Key
|
Name
|
Description |
| MANAGEMENT_CONFIGURATION |
Service
Manager - Digital Evolution
|
Contains internal registrations
for Service Manager subsystems and MP's |
| ACME_CONFIGURATION |
Service Provider - Acme
|
Contains registrations for Web
Services |
Sample Federated UDDI Servers....
Console > Registry Manager > Configure > Federated
Servers (this series is mostly
for demo candy)
| Name |
Inquiry URL |
| Acme UDDI - London |
http://uddi-london.acme.com:9901/rmengine |
| Acme UDDI - Chicago |
http://uddi-chicago.acme.com:9901/rmengine |
Acme UDDI - Sydney
|
http://uddi-sydney.acme.com:9901/rmengine |
| IBM |
https://uddi.ibm.com/ubr/find |
| Commodore64 - Singapore
(just renaming local box for humor) |
http://localhost:9901/rmengine |
2. Demonstration Scripts
Abbreviations
used in this section
MP1
|
Management Point 1 |
mp2
|
Management Point 2
|
| WS1 |
DE/SM-managed Web Service v1
(e.g. Account Manager v1) |
| WS2 |
DE/SM-managed Web Service v2
(e.g. Account Manager v2, with operation: transact)
|
| SA |
Sample Application (Client SDK
example by Mike Cardella) |
| C/M |
Navigate to "Console / Manage" |
| C/M/AOUC |
Navigate to "Console / Monitor /
All Operations Usage Chart" |
| Q&A |
Q&A (with customer to
clarify and handle objections, as usual) |
Managing a Web Service (a simple
run-through)
C/M/Services
Register WS:
- Account Manager
- Manages your checking and savings accounts
- http://localhost:9900/sample_webservice/servlet/rpcrouter
- http://localhost:9900/sample_webservice/wsdl/AccountManagerBinding.wsdl
- Provider:
Acme
Manage Service using:
- mp1
- PipelineTemplate = Acme Standard Monitoring
Contracts:
- Weekday
- Weekend
- Countdown
SA
Dynamic = MP1
Submit any/all ops using: HTTP, JMS, Any
...or show SOAP traffic with...
TraceTCP
Listen: NNNN (also used in SA:URL below)
DestHost: localhost
DestPort: MP-portnumber
SA
URL...: http://localhost:NNNN/MP1
Submit any/all ops using: HTTP, JMS, then Any
(=both/either/HA/LB?)
-----------
Console / Monitor
Soap Messages
Usage Data
C/M/AOUC (ideally with separate console, to monitor
incremental msgs)
Q&A
Load-Balance MP's to manage 1 Web Service
Pre-reqs:
WS (Account Manager) is already registered
MP1 already created and started
mp2 already created and started
C/M/Services
Register WS:
Account Manager v1 -- instance #1
Manages checking and savings accounts
http://localhost:9900/sample_webservice/servlet/rpcrouter
http://localhost:9900/sample_webservice/wsdl/AccountManagerBinding.wsdl
Manage Service w/mp2
PipelineTemplate=Record and Usage
manage All ops
C/M/Services
Register Service
Yes, this Service has already been added to Registry
Manager
Find Services: MP1
Un-check "Manage Service"
Finish/Close
Register Service
Yes, this Service has already been added to Registry
Manager
Find Services: mp2
Uncheck "Manage Service"
Finish/Close
C/M/Services
Single-click WS / Load Balance
Add Service / MP1
Add Service / mp2
Use MP1=1, mp2=1, WS=0 for now (& adjust later?)
Apply
Delete both new unmanaged WS's from Service list to "clean up the start
page"
C/M/Services
Unregister Service: MP1
Unregister Service: mp2
---------------------------
C/M/Services
View Service WS
View operation op1 (or whatever operation will be
HA/LB)
Add pipeline
Name it: "op1 using mp2"
PipelineTemplate = Record & Usage
Management Point = mp2
Template: Record and Usage
Apply
---------------------------
SA (HA/LB checked)
submit op1 10x with MP1
Notice that load is spread equally across MP1 and mp2 by viewing:
C/M/AOUC Service=MP1
C/M/AOUC Service=mp2
(Use separate console window for this to switch
easily for customer)
C/M/Services/LoadBalance
Assign MP1 and mp2 diff weights
SA
If using Java client, restart it
(HA/LB checked)
submit op1 10x with MP1
Notice load spread = diff (see questions, below)
Q&A
-----------------
Bugs?:
Configuration of LB is counter-intuitive (e.g.
registering then deleting 2 MP's)
SA hangs on some ops (e.g. HA and LB(?)) (see
MCardella)
SA (java only?) caches old HA settings from DE/SM
and needs to be restarted (see below)
High Availability: 2 MP's
managing 1 Web Service
Setup LB first (See "Script: Load-Balance 2 MP's which manage 1 WS", in
this doc)
SA (uncheck HA/LB box)
submit op1 against Dynamic = MP1 (succeeds)
Stop MP1
SA
(uncheck HA/LB box)
submit op1 against Dynamic = MP1 (fails)
(optional: M/C/AOUC?, need to restart SA?)
SA (check HA/LB box)
submit op1 against Dynamic = MP1 (succeeds thru HA
of mp2)
M/C/AOUC
show mp2 incremented
(optional)
Quick (re)demo of LB:
Restart MP1
SA (HA/LB checked)
submit op1 against Dynamic = MP1
M/C/AOUC
shows MP1 and mp2 incremented according LB weightings
Q&A
Versioning using Transformations:
Setup and Script
Required files (originally from from Andy Goldstein)
- \\lafs1\mreiser\Sync-from-laptop\SE\Demonstration\Versioning\DepositTransformation.xsl
- \\lafs1\mreiser\Sync-from-laptop\SE\Demonstration\VersioningWithdrawTransformation.xsl
- \\lafs1\mreiser\Sync-from-laptop\SE\Demonstration\Versioningsample_axis2.jar
Unzip #3 to C:\bin\digev\ms231\msconsole\appserver\webapps\sample_axis2\
Show that some operations are missing in WS2 (C:\bin\digev\ms231\msconsole\appserver\webapps\sample_axis2\WEB-INF\source\):
- WS1.java does have deposit and withdrawl operations:
public int withdraw(String
acctId, int amount) throws Exception {
public int deposit (String
acctId, int amount) throws Exception {
- WS2.java does NOT have deposit and withdrawl but
DOES transact operation:
public int transact(String
acctId, int amount) throws Exception {
Therefore, we'll use mp2 to transform depost and withdrawl to transact
Create/Start mp2
C/M/Services
Register Service: WS2
Account
Manager v2
Manages your checking and savings
accounts (has
transact instead of deposit / withdrawl)
http://localhost:9900/sample_axis2/services/AccountManager2
http://localhost:9900/sample_webservice/wsdl/AccountManagerBinding.wsdl
(Using wsdl of WS1 to ensure ops
missing from WS2 are avail for mgt)
Manage Service w/mp2
PipelineTemplate=Record and Usage
All ops
View service: WS2
View operation: Deposit
modify pipeline
Name: Deposit
using mp2
Description: Transform
Deposit (WSv1) to transact
(WSv2)
Add Component
Request/Transformation
Description: Transform WS1
deposit to WS2 transact
Upload: DepositTransformation.xsl
Apply/Apply
View service: WS2
View operation: withdraw
modify pipeline
Name:
Withdraw using mp2
Description: Transform
withdrawl (WSv1) to transact
(WSv2)
Add Component
Request/Transformation
Description: Transform WS1
withdraw to WS2 transact
Upload: WithdrawTransformation.xsl
Apply/Apply
Sample Application:
Service Key = MP1
withdraw (native op in WS1-deposit)
Service Key = mp2
withdraw (transforms to WS2-transact)
M/C/AOUC
mp1
mp2
4. Transports
Generating
a trusted certificate using
bundled KeyTool GUI (from 2.2
Training with Ramesh Dec 12)
Access your java keystore:
- Run: $DigEv\ms_tools\third_party\key_tool_gui_1.5\run.bat
- File/Open $DE-SM\keystore\keystore-default.jks (password:
changeit)
Generate a new key pair
- DSA --> RSA(1024)
- password: changeit
- CN...: Validity...Country (text values can really be anything)
- alias: Matthew
- password/password
- Expect: "KP generation successful"
Export a new certificate
- Right-click new keypair
- Export
- default radio buttons
- Matthew-trusted.cer
- Expect: "export successful"
Import your new Trusted Cert
- Tools / Import trusted cert
- Fails with: could not estab. trust path for cert... (ignore this)
- Accept? yes
- Matthew-trusted
- Expect: "import successful"
JMS-enabling your MP
md
C:\bin\digev\ms231\lib\config\
copy
%J2EE_HOME%\config\ejb.properties
C:\bin\digev\ms231\lib\config\
copy
%J2EE_HOME%\config\security.properties
C:\bin\digev\ms231\lib\config\
copy
%J2EE_HOME%\lib\j2ee.jar
C:\bin\digev\ms231\lib\ext\
| JMS Resource |
Name |
Type
|
| Factory |
deJmsQueueFactory |
queue |
| Destination |
Request_mp1 (if MP name = "mp1") |
queue |
| Destination |
Response_mp1 (if MP name = "mp1")
|
queue |
| Destination |
Response_DEMS_SampleClient
|
queue |
| Destination |
Response_SDKBRIDGE |
queue |
Using JDK 1.3.x from Sun,
modify c:\bin\digev\ms231\config\dems.properties to contain:
- mtp.jms.JndiInitialContext=com.sun.enterprise.naming.SerialInitContextFactory
- mtp.jms.JndiProviderUrl=iiop://localhost:1050
- mtp.jms.ConnectionFactory=deJmsQueueFactory
Using the console set JMS
parameters at MP>Details>Modify
- iiop://localhost:1050
- com.sun.enterprise.naming.SerialInitContextFactory
- deJmsQueueFactory
- Request_mp1
Restart:
- j2ee.bat (if not already started)
- mp1
- SDK_Bridge (if using .Net sample client)
Confirming HTTPS support
for your MP
https://localhost::[HTTPS port number]
should respond with cert details
Topics
swith MikeC:
SA bug:
Must restart SA after changing MP weights (in
console) so new weighting shows up in Usage
Brought to you by... Tasty Morsels