czech sun training day 2008 - java enterprise system
DESCRIPTION
Presentation from training day for Sun Solaris customers to explain features of Sun Java Enterprise System. Presentation covers following themes: - architecture - Directory server - Web server - Access manager - Portal serverTRANSCRIPT
Sun Training Day 2008sekce JES
Martin Červený[email protected]
Architektura Sun Java Enterprise System
Directory server
Web server
Access manager
Portal server
Architektura Sun Java Enterprise System
Komponenty JES● directory server● directory proxy server● web server● web proxy server● application server● java DB● HA session DB● message queue● access manager● policy agent● portal server● portal server secure remote access● cluster● monitoring console● service registry
architektura
Licenční balíky● Sun Java Enterprise System● Sun Java Application Platform Suite● Sun Java Availability Suite● Sun Java Web Infrastructure Suite● Sun Java Identity Management Suite
– identity manager– federation manager
● Sun Java Communications Suite– calendar server– messaging server– instant messaging server
● Sun Java Composite Application Platform Suite– enterprise service bus, composite page
designer, business process manager, business activity monitor, B2B integrator, data integrator, intelligent event processor, master index
architektura
Historie● < 1999 - Netscape● 1999-2001 - AOL + Sun = iPlanet● 2002-2003 - SunONE● > 2003 - Sun Java Enterprise System● > 2006 - opensource
– GlassFish - application server– OpenSSO - access manager– OpenPortal - portal server– OpenHAC - cluster– FedoraDS– OpenDS
architektura
Instalace
● požadavky– 6GB HDD, 4GB RAM
● platformy– solaris 9/10 SPARC/x86– linux RHEL 3/4 – hp-ux 11i v1 PA-RISC– Microsoft Windows 2000 AE SP4, XP SP2,
2003 ES SP1● instalátor
– interaktivní – GUI, TUI– dávková instalace „state file“
architektura
Škálovatelnostarchitektura
GWGWGW
GWGWMTA
GWGWPS/WSGWGWAM/WS
GWGWDS
GWGWMTAGWGWMTA
GWGWCE/WS
GWGWAS
GWGWWS
GWGWCAL
DB
HAcluster
node agentnode agent
Administrace, konfigurace a dohled
● vlastní konzole (webové, JSF)● plná konfigurace z CLI● JMX cacao
– SNMP, JMX– autonomní monitor služeb v systémech– Common Monitoring Model (CMM/CIM)– cacaoadm(1m), mfwkadm(1m)...
architektura
systémový agent
snmp JMX
perf threshldstav alarm
mbea
n
mbea
n
mbea
nhlavní agent
mon. konzole
Více v kurzech
ECR-2281* – přehled produktůDIR-2217, DIR-2340, DIR-3300* – directory
serverIAS-2489, IAS-4404*, IAS-3445*, IAS-4444*
– application serverECR-2307* – web serverAM-3480 – access managerPTL-2309*, PTL-4310* – portal serverES-345, ES-445 - clusterIDM-345, IDM-4485 - identity managerSB-CAP-0501, SB-CAP-0502, SB-CAP-0500,
SB-CAP-0570, SB-CAP-0580, SB-CAP-0550 – java CAPS
MSG-2222* – messaging server
architektura
kurzy
Directory server
Directory server 6● adresářový server
● hierarchická distribuovaná rozšířitelná objektová databáze
● X.500 ISO normy● Lightweight Directory Access Protocol (LDAP)
● [search, compare, add, delete, modify, modify DN, bind, unbind, abandon]
● DSMLv2 over HTTP/SOAP● rozšíření v JES
● definice rolí (roles)● generované atributy (class of service)● přístupová práva (aci)● replikace (i filtrovaná) a zřetězení● vývoj plugin modulů● windows sync
DS
funkce
LDAP model● objekty s atributy (Directory Information Tree,
DIT)● hierarchie objektů ● identifikace hierarchie objektů podle
Distinguish Name (DN)● schémata (atributů, tříd, jmenných vazeb)● obecný zápis pomocí LDAP Data Interchange
Format (LDIF)
dn: identifikace objektuobjectClass: třída objektuatribut: hodnotaatribut: hodnotaatribut: hodnota...
DS
LDAP
DIT
dn: o=firma, c=czobjectClass: topobjectClass: organizationo: firma
dn: ou=people, o=firma, c=czobjectClass: topobjectClass: organizationalUnitou: people
dn: ou=groups, o=firma, c=czobjectClass: topobjectClass: organizationalUnitou: groups
dn: uid=jnovak, ou=people, o=firma, c=czobjectclass: person ...uid: jnovakcn: Jan Novaksn: Novak
dn: uid=jnovak, ou=people, o=firma, c=czobjectclass: person ...uid: jnovakcn: Jan Novaksn: Novak
dn: uid=jnovak, ou=people, o=firma, c=czobjectClass: personuid: jnovakcn: Jan Novaksn: Novak
dn: cn=lyzari, ou=groups, o=firma, c=czobjectClass: groupofunique..cn: lyzariuniqueMember: uid=jnovak, ou=people, o=firma, c=cz
DS
LDAP
Role● managed roles● nested roles● filtered roles
dn: cn=acctouting, ou=people, o=firma, c=czobjectClass: LDAPsubentryobjectClass: nsRoleDefinitionobjectClass: nsComplexRoleDefinitionobjectClass: nsFilteredRoleDefinitioncn: acctoutingnsRoleFilter: (&(objectclass=person)(ou=acctounting))
dn: uid=jnovak, ou=people, o=firma, c=czobjectClass: personuid: jnovakou: accountingnsRole: cn=acctouting, ou=people, o=firma, c=cz
DS
rozšíření
Class of service● pointer CoS ● indirect CoS● classic CoS
dn: cn=cos-classic, o=firma, c=czobjectClass: ldapsubentryobjectClass: cossuperdefinitionobjectClass: cosclassicdefinitioncosSpecifier: lcosAttribute: postalcodecosTemplateDN: cn=psc,o=firma,c=cz
dn: cn=Praha, cn=psc, o=firma, c=czobjectClass: LDAPsubentryobjectClass: extensibleObjectobjectClass: cosTemplatepostalCode: 10000
dn: uid=jnovak, ou=people, o=firma, c=czobjectClass: personuid: jnovakl: PrahapostalCode: 10000
DS
rozšíření
ACI● definice přístupových práv mezi přihlášeným
subjektem a manipulovaným objektem
definice cíle(kde a co)
targettargetattrtargetfilter
přístup(jak)
read/writeadd/delete
searchcompareselfwrite
proxy
definice zdroje(kdo a kdy)
userdngroupdn
userdnattrip/dns
timeofdaydayofweek
authmethod
aci: (cíl) (version 3.0; acl “name”, přístup zdroj)
allowdeny
DS
rozšíření
Propojení adresářůDS
rozšíření
S1 S2
1 23
4
S1 S2
1 4
2
3
odkazy (referral)zřetězení (chaining)
S1changelog
repl. id
S2changelog
repl. id
S3
rochangelog
repl. id
S4
ro repl. id
čti lokálněpřeměruj při zápisu
zápis
replikace
Administrace a konfigurace
● nástroje (/opt/SUNWdsee/ds6/bin)– ldapsearch, ldapmodify– dsadm, dsconf, insync, entrycmp ...– webconsole (DSCC)
● datová instance (/var/opt/SUNWdsee/*)– db - data LDAP (formát BerkeleyDB)– config/dse.ldif - konfigurace instance– config/schema/* - schémata atributů a tříd– logs/access– logs/error– logs/audit– bak - zálohy (formát BerkeleyDB)– ldif - zálohy (formát LDIF)– confbak - zálohy konfigurace– instanční příkazy (start,stop,*2*)
DS
administrace
Více v kurzech
DIR-2217 - Sun Java System Directory Server Enterprise Edition 6: Analysis and Planning
DIR-3300* - Sun Java System Directory Server 5: Advanced Design and Deployment
DIR-2340 - Sun Java System Directory Server Enterprise Edition 6: Maintenance and Operations
DS
kurzy
Web server
Web sevrer 7● řízení sady (cluster) serverů ● dynamický obsah
● Netscape Server API (NSAPI)● CGI, fastCGI, Perl, PHP, ASP (proxy do JES ASP
serveru)● Java 5/6 (J2EE web container - presentation)
● Servlet API, JSP, JSTL, JSF, WSDL● JNDI, JDBC connection pool, jiné zdroje, mail● „session magers“ - replication, memory, file,
iws60, mmap● cash helper● *.war deployment
● virtuální servery● možnost omezení dotazů (QoS, DDoS)● monitorování provozu● reverzní proxy (load balancer)● WebDAV● hledací služba● LDAP
WS
funkce
Funkční architekturaWS
rozšíření
admin server
w1.f.cz
w2.f.cz
systém 1
w1.f.cz
systém 2
w1.f.cz
systém 3
w2.f.cz
wadmwebconsole
w2.f.cz
konfigurace
systém
instance
AN
AN
AN
Java web aplikace
● souborový strom *.war/static_directory - *.jsp, *.html .../WEB_INF/classes - java classes/WEB_INF/lib - java *.jar/WEB_INF/*.tld - tag library descriptors/WEB_INF/web.xml
– appl. specifications (Servlet Specification)● parametry aplikačního kontextu● definice servletů a JSP● mapování URL na servlety a JSP● mapování MIME● chybové stránky● bezpečnostní nastavení
/WEB_INF/sun-web.xml● bezpečnostní nastavení● nastavení „session manager“● nastavení „cache“● classloader● i18n
WS
rozšíření
Administrace a konfiguraceWS
administrace
● administrace– web konzole– příkazová řádka (/opt/SUNWwbsvr7/bin/)
● wadm, jspc, flexanlg● skripty v TCL
● datová instance (/var/opt/SUNWwbsvr7/*)– config/server.xml - hlavní konfigurace– config/obj.conf - zpracování uri– config/magnus.conf - aktivace plugin– config/* - replik. z config-store– log/access– log/errors– bin/ - instanční příkazy– web-apps/, generated/, session/ - war– collections/ - hledací služba
konfigurace
instance
server.xml
magnus.conf
listen socketid
IPAddrport
SSLEnabled
listen socketid
IPAddrport
SSLEnabled
http-listenername
ipportssl
sslservercertnicknamessl2ssl3tlsclientauth
virtual-servernamehosthttp-listenerdocument-root“obj.conf”“acl”
0..1
1..n
WS
administrace
mime.types
default.acl
obj.confWS
administrace
● řídí zpracování požadavku1. AuthTras - popis případných autorizací2. NameTrans - překlad virtuálních (URL) cest 3. PathCheck - kontrola platnosti cest a práv4. ObjectType - nastavení typu objektu (MIME)5. Input - předzpracování vstupu6. Output - následné dopracování výstupů7. Service - vytvoření výstupu8. AddLog - vytvoření log záznamů9. Error - případný popis chyby
obj.confWS
administrace <Object name=“default“>…NameTrans fn=…NameTrans fn=… name=“cgi“
PathCheck fn=…PathCheck fn=…
ObjectType fn=…ObjectType fn=…
Service fn=…Service fn=……</Object>
<Object name=“cgi“>
ObjectType fn=…
Service fn=…
</Object>
Vývoj pro J2EE web containerWS
vývoj
● servlets● JSP● Java Architecture for XML Binding (JAXB)● Java API for XML Messaging (JAXM)● Java API for XML Processing (JAXP)● Java API for XML Registries (JAXR)● Java API for XML-based RPC (JAX-RPC) ● SOAP with Attachments API for Java (SAAJ)● Web Services (WSDL)● XML and Web Services Security● XML Digital Signatures ● Java Server Faces (JSF)● JavaServer Pages Standard Tag Library (JSTL)● Sun Java Streaming XML Parser● ...
Více v kurzech
ECR-2307* - Sun Java System Web Server 6.1: Administration and Maintenance
SL-314-EE5 - Web Component Development Wth Servlet and JSP Technologies
DTJ-3109 - Developing Secure Web-Tier Applications
DTW-3000 - Core JSF: JavaServer Faces in Action With Ajax
DWS-4112-EE5 - Designing Java Web Services
DWS-3111-EE5 - Creating Web Services Using Java Technology
WS
kurzy
Access manager
Access Manager 7● middleware (.war) pro řešení problému účtu● autentizace (authentication, identity mgmt)
– otevřený autentizační systém (JAAS), moduly– SSO (AM SSO, SAML, Liberty Aliance)– auto registrace
● autorizace (authorization, access)– řízení bezpečnostních politik (policy mgmt)
● audit– centrální logovací služba (logging service)
● data aplikací/služeb (service mgmt)– administrativní konzole (administration
service)– možnost administrace vlastního konta
(selfadmin)● centrální data relací (session management)● možnost delegované administrace, lokalizace
AM
funkce
ArchitekturaAM
access manager
Sun LDAP
identity management
delegatedadministrator
usermanagement
selfmanagement
selfregistration
access management
policy
authentication
SSO/session
logging
service management
registration
configuration
federationmanagement
liberty WS
SAML
admin GUI
java/C SDKhttp
LDAPv3 souborová db
funkce
MS AD
clientdetection
federatedidentity
java/C XML SDK
Správa identit
● identita– organizace– kontejnery (organizační jednotky,
uživatelé, skupiny...)uživatelé– role– skupiny– uživatelé
AM
identita
Projekt Liberty Alliace
● http://www.projectliberty.org● fáze
I. Federated Framework (ID-FF)● implementuje SSO● ochrana soukromí (opt-in)● standardizované SSO● global sign-out● anonymity
II. Web Services Framework (ID-WSF)● definuje rámec pro vytvoření, objevení a
používání služeb identit● sdílení atributů na základě povolení
III. Services Identity Specifications (ID-SIS)● definuje interoperabilitu aplikací
AM
identita
atributyslužby
Správa služeb● sada atributů které jako parametry využívá služba● služba je definována popisným dokumentem xml● atributy mohou být nastaveny v několika úrovních
AM
služba
globálníorganizaceroleuživatel
globální
organizační
dynamické
uživatelské
Správa bezpečnostních politik
● autorizace– definice na úrovni organizace
● definice pravidel a vyhodnocení – typ politiky
● normální● odkazová, delegace práv (referral)
– obsah normální politiky ● název zdroje (objekty) (resource name)● přístupová práva nebo akce (permission)● subjekty (subjects)● podmínky (conditions)
AM
politiky
Policy agent● aplikace s využitím AM pro řízení přístupu
– policy enforcement point (PEP)– chrání web a rozšiřuje dynamickou část – jako plugin pro řízení přístupu (ACL) pro
většinu web serverů – plugin do J2EE aplikačních serverů (filter,
mapování J2EE rolí)
AM
politiky
web
accessmanager
enforced/nonenforced URL
polic
y ag
ent2
1
3
redirect
zpátky na data
redirect na AM login
policy
Administrace a konfigurace
● příkazy (/opt/SUNWam/)bin/ - amadmin, ampassword, amtunelocale/ - l10n (.properties)samples/ - ukázky SDK i administraceweb-src/ - sestavení AM aplikace (*.war)
● konfigurace (/etc/opt/SUNWam/)config/AMConfig.properties - konfigurace SDKconfig/xml - konfigurace pro základní službyconfig/serverconfig.xml - konfigurace serveruagents - konfigurace policy agenta
● data (/var/opt/SUNWam/)logs - centrální logdebug - lokální debug
AM
administrace
Administrace dat● úpravy všech dat● přiřazení a zrušení přiřazení bezpečnostních
politik● vytvoření, odstranění a úpravy nastavení služeb na
všech úrovních (globální, organizační, dynamické i uživatelské atributy služeb)
● vytvoření, odstranění a úpravy kontejnerů (organizačních jednotek, skupin a uživatelů)
● vytvoření, odstranění a úpravy federovaných autentizačních domén, poskytovatelů identit
http://.../amserver/amadmin -t requests.xml
OrganizationRequests, SchemaRootNodeRequests, SchemaRequests, ServiceConfigurationRequests, ContainerRequests, PeopleContainerRequests, RoleRequests, GroupRequests, UserRequests, ListAccts, RealmRequests, IdentityRequests, DelegationRequests
ldapmodify
AM
administrace
Administrace služeb
amadmin -r/-s service.xml
<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE ServicesConfiguration PUBLIC
"=//iPlanet//Service Management Services (SMS) 1.0 DTD//EN"
"jar://com/sun/identity/sm/sms.dtd"><ServicesConfiguration>
<Service name="A_Svc_Name" version="Svc_Version"><Schema ... >
<Global>... attribute definitions ...</Global><Dynamic>... attribute definitions ...</Dynamic>
<Policy>... attribute definitions ...</Policy><Organization>... attribute definitions ...</Organization>
<User>... attribute definitions ...</User></Schema>
</Service></ServicesConfiguration>
AM
administrace
Modifikace a lokalizace
● modifikace a lokalizace GUI– systém dynamických adrsářů
/opt/SUNWam/web-src/services/config/auth/*[realm|default][_locale]/[subrealm/][client/].../realm_en/services/firma.cz/html/file.../realm_en/services/firma.cz/file....../realm/services/firma.cz/html/file.../realm/services/firma.cz/file.../realm/html/file.../realm/file....../default_en/services/firma.cz/html/file....../default/file
● lokalizace služeb/opt/SUNWam/locale/*[_locale].properties
AM
administrace
Vývoj pro access manager● autentizační (client/server)● Single-Sign-On (SSO)● služby (data/definice služeb)● vyhodnocení politiky přístupu (client/server)● log služba ● password reset● liberty aliance SSO, WebServices● SAML
AM
vývoj
Více v kurzech
AM-3480 - Access Manager 7.1: Configuration and Customization
AM
kurzy
Portal server
Portal server 7● portálová aplikace (*.war)● základní funkce
– agregace obsahu– konzistentní prezentace– individuální přizpůsobení obsahu– flexibilní rozšiřitelnost obsahu (.par)– integrace s access managerem
● SSO, služby, uživatelé– podpora různého přístupu
● iHTML, HDML, XHTML, cHTML, HTML, WML, VoiceXML
– hledání● implementace prezentovaného obsahu
– vlastní provider/kanály, JSR168 a WSRP● Secure Remote Access (SRA)
– gateway, netlet, netfile, proxylet, rewriter
PS
funkce
Architektura
portal server
access manager
content provider dektop servlet
admin gui
netmail searchenginenetlet
netfile
ssoadapter
provider (container, leaf)content providerbuilding block providercustom provider
portlet WSRP
display profile document
rewriter
subs-cription
discus-sions
template
PS
funkce
wikifilesharesurveys
rsseventtask
Distribuované nasazení SRA
GWGWGW
netlet proxynetlet proxyvpn
imap, ftp..
portálhttps portál
url scraper
www
polic
yag
ent
rewriter proxy
JSP
XML/XSLT
content prov. dat
abas
es
directory server
access managerportlet
WSRP
provider
http
applic
atio
nse
rver
PS
funkce
Display profile documentPS
DPDXML dokument display profile
container channel
leaf channel
leaf channel
leaf channel
container channel
container channel
provider
portlet
provider
provider
provider
Použití DPDPS
DPD
● popis – globální vlastnosti (properties)
● témata, nastavení ...– provider
● vazba na java třídy nebo portlet– kanál (channel)
● hierarchie kanálů● parametry a vazba na provider/portet
● programově řízený slučovací mechanismus● podmíněná data● globální, organizace, role, uživatel
<DisplayProfile><Properties>...</Properties><Channels>...</Channels><Providers>...</Providers>
</DisplayProfile>
Slučování DPDPS
DPD
<dp> <pr name=p/> <param name=u/> <ch name=o1/> <ch name=r1/> <ch name=r2/></dp>
<dp priority=“0“> <pr name=p/></dp> [global]
<dp priority=“10“> <ch name=o1/> <ch name=o2/></dp> [org]
<dp priority=“30“> <ch name=r1 merge=remove/> <ch name=r2/></dp> [role]
<dp priority=“20“> <ch name=r1 lock=true/> <ch name=o2 merge=remove/></dp> [role]
<dp priority=“user“> <param name=u/></dp> [user]
Portlet / WSRPPS
portlet
● portlet● standardizováno JSR-168● vlastnosti servletu s generováním html
fragmentu● portlet container● instalace pomocí *.war balíkem (s popisem
portletu)//WEB-INF/web.xml/WEB-INF/portlet.xml/WEB-INF/classes/*.class
● WSRP● vzdálené portlety podle JSR-168● prezentačně orientovaná web služba (WSDL/
SOAP)● WSRP producers/consumers
Rewriter
● přepisuje obsah stránek – vytváří netransparentní proxy– možnost přepisu cizích stránek– podpora html, ccs, částečně javascript, xml
PS
rewriter
http://gw/http:/server/dir/page.html
web server
page.html:<a href=“other.html“>..</a>
http:/server/dir/page.html
page.html:<a href=“http://gw/http:/server/dir/other.html“>..</a>
gw rewriter
Hledací služba● „Netscape Compass Server“● robotické prohledávání webu● podpora mnoha typů souborů ● klasifikace● API pro RD● Resouce Descriptors Messages● Summary Object Interchange Format (SOIF)
PS
search
Administrace a konfiguracePS
administrace
● příkazy (/opt/SUNWportal/)bin/ - psadmin, rdmgr, pstunelocale/ - l10n (.properties)samples/ - ukázky web-src/, par_src/, portletapps/ - sestavení PS aplikace
(*.war)
http://.../portal/, http://.../psconsole/● konfigurace (/etc/opt/SUNWportal/)
PSConfig.propertiesdomains/*/PortalDomainConfig.properties
● data (/var/opt/SUNWportal/)logs/admin - logy administrace portálu
● instance portálu (/var/opt/SUNWportal/portals/*/)config/desktopconfig.properties - konfigurace desktopulogs - logy portáludesktop/* - dynamický adresář desktopudesktop/classes – aplikace desktopu
● instance srch (/var/opt/SUNWportal/searchservers/*/)
Modifikace a lokalizace
● dynamický adresář desktopu[desktoptype|default][_locale]/[channenamel/|/provider][client/]
desktoptype_locale/channelname/client/filedesktoptype_locale/provider/client/filedesktoptype_locale/channelname/filedesktoptype_locale/provider/filedesktoptype_locale/client/filedesktoptype_locale/filedesktoptype/channelname/clientPath/file…default_locale/channelname/clientPath/file…default/channelname/clientPath/file…default/file
● lokalizace služeb/opt/SUNWportal/locale/*[_locale].properties/var/opt/SUNWportal/portals/*/desktop/classes/
PS
administrace
JSPTabContainerPS
administrace
JSPTableContainerPS
administrace
Vývoj pro portál server● provider (leaf)
– content provider– building block provider (BBP)
● URLScraperProvider● XMLProvider● JSPProvider
– custom provider (PAPI)● provider (conteiner)
– building block provider– JSPTabContainer, JSPTableContainer,
FrameTabContainer– custom provider
● portlet JSR-168● WSRP● robot API
PS
vývoj
Více v kurzech
PTL-2309* - Sun Java System Portal Server: Installation and Configuration
PTL-4310* - Sun Java System Portal Server: Customization
PS
kurzy