cybernetics in modern organizations
Equation 3-11 Utility as the variation of income of a company
3.3. Technological layer: operational and technological artefacts
3.3.3. Simulation model of knowledge assets behavior The SIPAC-framework suggests the use of this simulation model in two of the stages
3.3.3.2. Agents-based dynamic decision-making model.
Estecapítuloproporcionaunavisióngeneralde cómoañadirunapágina adicional a sutienda. Enélnosedescribecómo añadirlógicadenegocioadicional,como porejemploampliarunmandatoexistenteoescribirunonuevo;paraobtener informaciónsobrecómoampliarWebSphereCommerce,consultelapublicación WebSphereCommerce,Guíasdeprogramación yaprendizaje. Lospasosgeneralespara añadiruna páginaa latiendasonlossiguientes:
v Desarrollarunalista delaspáginasdetiendaquesenecesitan v Desarrollarunalista delosURLdemandatos yvistas
v AsociarnombresdearchivoJSPalas vistas v Establecerelcontroldeacceso paralapágina
v Planificarlaestrategiadealmacenamientoenantememoria
Paraobtener unaexplicaciónmásdetallada deldesarrollode laspáginasde tienda, consulte lapublicaciónWebSphereCommerce,Guíaparaeldesarrollodetiendas.Para obtener másinformaciónsobreelcontroldeacceso, consultelapublicación WebSphereCommerce,Guíade seguridad.
Desarrollar
una
lista
de
las
páginas
de
tienda
Paradesarrollarunalista delaspáginasnecesariasparacrearlatienda, debe conocer losrequisitosfuncionalesy denegociode latienda,asícomolosprocesos de negocioquesehayandefinido.
Muchas personasrecopilanlosrequisitosenformadeejemplosdeuso.Los ejemplosde usodefinenlosprocesos denegociodelatienda,enformade interaccionesentreelclientey elsistemapropuesto.Enelcasodeunatiendaen línea,losejemplosdeusopuedendefinircómoseregistraunclienteenlatienda, cómo examinaelcatálogoocómohaceelpedidodeunartículo.
EnelApéndiceA,“Ejemplos deuso”,enlapágina 143seproporcionaunconjunto de ejemplosdeusoquedetallanlosproceso denegociode latiendaExpressStore. Estosejemplosde usopuedenayudarlea comprenderconmásexactitudelflujode las tiendasExpressStoreypuedenutilizarse comoguíaparacrearejemplosdeuso adicionales parasu propiatienda.
Determinar
el
flujo
de
compra
de
la
tienda
Tantosidesarrollaejemplosdeusoparailustrarlosprocesosde negociodela tienda, comosiusaotrométodo, unavezquelosprocesosdenegocioestén disponibles,puedecrearelflujode compradesu tienda.Puestoquelosejemplos de usoa menudocontieneninformaciónsobreelflujo,deltipo″Si elcliente seleccionaSometer,semuestralapáginaPedido″,losejemplosdeusopueden proporcionarinformaciónmuyútilparalacreacióndediagramasdeflujode compra. Elflujodecompra reflejalosrequisitosylosprocesosde negocio definidos paralatienda, queilustranlosmovimientosde uncliente enlatienda. Por ejemplo,unclientepuedeentrarensu sitioWebatravésde lapáginade presentación ylepuedesolicitarqueseregistreantesdeexaminarelcatálogo, o puedeelegirquelosclientespuedanverelcatálogocomoinvitados,sintenerque registrarse.Algunosflujosdecompra permitena losclientespasarporuna ″caja rápida″,mientrasqueotrosflujos decompra requierenqueelclienterealicetodos
lospasos depasarporcajacadavezqueefectúaunacompra.Obien,su flujode compra puedeofrecera losclienteslasdosopcionesde pasarporcaja.Para comprobarqueeldiagramade flujodelatiendaestácompleto, asegúresede que todoslospasosenlosejemplosdeusodesutiendaestánilustradosenel
diagrama deflujodelatienda.
Lacorrelaciónvisualdelflujodecompra,como sehaceenelsiguientediagrama delflujodecompra delatiendaExpressStore,permitevercómosemoverán los clientesenlatienda.
Eldiagramadelflujodecompra deExpressStoreesmuysencillo.Aunqueincluye elflujoprincipaldelrecorrido deunclienteporlatienda,noincluyelas
situaciones deerror. Porejemplo,loquesucede encasodequeelcliente seconecte utilizandouna contraseñaincorrectaoescribaunnúmerodetarjetade créditono válido.Sinembargo,inclusoundiagrama sencillocomoéstelepermitedesarrollar una listadelas páginasnecesariasparalatienda.Paraempezar,deberácrearuna vistaparacadapáginaqueselistaeneldiagramadeflujode compra.
Páginas
de
error
Losflujosde excepciónde losejemplosde usotambiénpueden ayudarlea determinarlas páginasde errorquetienequecrearparalatienda. Elejemplode usoderegistroparaExpressStoreespecificalosflujosdeexcepciónsiguientes: v Ladireccióndecorreoelectrónicoyaexiste:Si ladirecciónde correoelectrónico
yaexisteenelsistema,éstemuestraunmensajedeerrorsolicitándolealusuario queentreotradireccióndecorreoelectrónico.Elejemplodeusosereanuda desdeelprincipio.
v Faltancamposobligatorios:Sinosehacumplimentadoalgunode loscampos siguientes(Dirección decorreoelectrónico,Contraseña, Verificarcontraseña, Nombre,Apellido),elsistemaemiteunmensajedeerror. Elejemplodeusose reanudadesdeelprincipio.
v Contraseñanoválida:Silacontraseñanocoincide conlacontraseñade verificación,elsistemaemiteunaviso.
Paracadanuevoflujodeexcepciónquecree,tendrá quecrearunapágina deerror o unmensajedeerror.
Desarrollar
una
lista
de
los
URL
de
mandatos
y
vistas
Como sehavistoeneldiagramade flujodecomprade ExpressStore,losprocesos de negocio,comoelregistroopasar porcaja,puedenrequerirvariaspáginas. Para fusionarestas páginasenunflujooprocesode negociooperativo,enlugarde que seansolamenteunconjuntodepáginas, debeincluirmandatosy vistasensus páginas.
Desarrollar
una
lista
de
los
URL
necesarios
Así comohadesarrolladouna listadelas páginasquesenecesitan paracrearla tienda, tambiéndebedesarrollarunalistade losURLdemandatosy vistas necesarios paraimplementarlosprocesosde negocioparasutienda. Utilizandoel diagrama deflujodecompra paralatienday lalista demandatos yvistaspor omisión, identifiquelosURLnecesariosparacompletarcadaacción.
Conocer losURLdemandatos yvistasqueseutilizanenlas tiendasExpressStore puedeayudarleadeterminarlosURLquenecesitaensu tienda.Lailustración siguiente identificalosURLparaalgunasde lasaccionesquesemuestranenel
diagrama deflujodecompra delatiendaExpressStore.
Leyenda
Se puede acceder a estas páginas desde cualquier página del sitio. Página de ayuda HelpDisplay.jsp Página de producto ProductDisplay.jsp HeaderDisplay.jsp FooterDisplay.jsp Página de registro o conexión AccountDisplay.jsp Contáctenos ContactDisplay.jsp
SidebarDisplay.jsp Los archivos JSP de cabecera, pie de página y marco lateral se incluyen en todas las páginas del sitio. Muchos de los enlaces representados en la página de presentación se encuentran en los archivos de cabecera o pie de página.
Política de privacidad PrivacyDisplay.jsp HelpView ProductDisplay OrderItemDisplay PrivacyView ContactView LogonForm CategoryDisplay Página de presentación StoreCatalogDisplay.jsp
Ayuda Seleccionar producto Contáctenos
Registro o Mi cuenta
Carro de la compra Política de privacidad Seleccionar categoría Páginas de categorías CategoryDisplay.jsp Carro de la compra OrderItemDisplay.jsp Negrita URL
Acción del cliente
Cursiva
Asociar
nombres
de
archivo
JSP
a
las
vistas
WebSphereCommerceServerutilizamandatos devistaparacomponerunavista como respuestaaunapetición decliente.WebSphereCommerceServer
proporcionalossiguientesmandatosde vista:
HttpForwardViewCommandImpl
Estemandatodevistareenvíalapetición devistaaunarchivoJSP. Utilice elmandatode vistaHttpForwardViewCommandImplparapresentar directamente losarchivosJSP.Porejemplo, eneldiagramaqueilustralos URLqueseutilizanenlatiendaExpressStore,paramostrarlapáginade Ayuda(HelpDisplay.jsp),HelpViewseregistraenelregistrodevistasy se asocia conHelpDisplay.jsp yconelmandato
HttpForwardViewCommandImpl.Estosemuestraenelejemplosiguiente: <viewreg viewname="HelpView" devicefmt_id="-1" storeent_id="@storeent_id_1" interfacename="com.ibm.commerce.command.ForwardViewCommand" classname="com.ibm.commerce.command.HttpForwardViewCommandImpl" properties="docname=HelpDisplay.jsp" internal="0" https="0" />
Tenga encuentaqueseutilizaelnombrede clase(classname)totalmente calificadoparalainterfazylaclasedeimplementación.
Utilice elmandatode vistaHttpForwardViewCommandImplparapresentarlas vistasquedevuelveunmandatode visualización.Unmandatode
visualización leelosdatosdelabasede datosperonolosmodifica. Por ejemplo, eneldiagramaqueilustralosURLutilizadosenExpressStore,el mandatoOrderItemDisplay devuelvelavista
OrderItemDisplayViewShiptoAssoc. Cuandoestavistaseregistróenel registrodevistas,seasociarona lamismaOrderItemDisplay.jspy HttpForwardViewCommandImpl.Estosemuestraenelejemplosiguiente: <viewreg viewname="OrderItemDisplayViewShiptoAssoc" devicefmt_id="-1" storeent_id="@storeent_id_1" interfacename="com.ibm.commerce.command.ForwardViewCommand" classname="com.ibm.commerce.command.HttpForwardViewCommandImpl" properties="docname=OrderItemDisplay.jsp" internal="0" https="0" />
Debe asociarunnombredearchivo JSPa cadavistaasociadaconcada mandatode visualizaciónqueutilice(porejemplo, OrderItemDisplay).
Nota: ProductDisplayyCategoryDisplaylistan losnombresdearchivo JSP asociadosenlosdatosdelcatálogoenlugardeenelregistrode vistas.
HttpRedirectViewCommandImpl
EstemandatodevistaredirigelapeticióndevistaaotroURL.
Utilice elmandatode vistaHttpRedirectViewCommandImplparapresentar las vistasquedevuelveunmandatoquecambia labase dedatos.Para utilizarlavistaderedirección,especifiqueelnombrede vistautilizandoel parámetro&URL= enelURL.Porejemplo,cuandoañadeinformaciónde direcciónenelformulariodedirecciónde ExpressStoreypulsaSometer,se invocaelmandatoAddressAdd.ElURLutilizadoparainvocarelmandato AddressAdd especificaAddressBookFormcomolavistamedianteel parámetro&URL=.Elresultadoesunaredireccióna lavista
AddressBookForm.CuandolavistaAddressBookFormseregistróenel registrodevistas,seasocióa AddressBookForm.jspya
HttpForwardViewCommandImpl.
Debe utilizarlatécnicaURL=parámetroparatodoslosmandatosnode visualización.Losmandatosnode visualizaciónsonmandatosque producencambiosenlosdatosdelabasede datos.
HttpDirectViewCommandImpl
Estetipode mandatodevistaenvía lavistaderespuestadirectamente al cliente.NollamaaunarchivoJSP.Lasvistasdirectaspermitenquelos mandatos decontroladorgenerenlarespuestadesalida (enlugardel mandatode vista).
Establecer
el
control
de
acceso
para
una
página
Cuando sepublicólatiendaExpressStore,secargaronlaspolíticasdecontrolde acceso paralatiendaenlabasede datos.Consulte elarchivo accesscontrol.xml paraobtener unejemplodecómocrearunarchivode controlde acceso.
1. Paraañadirunavistanuevaalaquesepuedaaccedermedianterolescon políticasdeVistabasadasenroles, creeunarchivo XMLsimilaralquese muestra:
<?xml version="1.0" encoding="ISO-8859-1" standalone="no" ?> <!DOCTYPE Policies SYSTEM "../dtd/accesscontrolpolicies.dtd"> <Policies>
</Policies>
2. Creeunanuevadefiniciónde acciónenelarchivoXMLparalavistaqueha añadido,porejemplo,
<Action Name="AddToExistReqListView" CommandName="AddToExistReqListView"/> 3. Determinequérolesdebenteneraccesoa estavista,yasocielanuevaaccióna
losgruposdeaccionescorrespondientesenelarchivo XML,comoenelejemplo siguiente:
<ActionGroup Name="ExpressAllUsersViews" OwnerID="RootOrganization"> <ActionGroupAction Name="AddToExistReqListView"/>
</ActionGroup>
Yaexisteunapolíticabasadaenroles, ExpressAllUsersViews,queincluyeeste grupode acciones,porloquenoesnecesariocrearunapolítica nueva.Todos losmandatosde compradelatiendaExpressStorepertenecenalgrupo de accionesExpressAllUsersViews.
4. Cargueloscambios XMLenlabasede datos.
a. CopieelarchivoXMLqueha creadoeneldirectorio dir_instalación_WC/xml/policies/xml.
b. ConécteseconelIDde usuariodebasede datos.
Linux ElIDdeusuariodebase dedatosdebetenerelpermisosiguiente parapodercontinuarconlospasos posteriores:
v Autorizacióndelectura/escritura/ejecuciónparalosdirectorios, subdirectoriosy archivosdedir_instalación_WC/xml/policiesy dir_instalación_WC/logs.
v Autorizacióndelectura/ejecuciónparaeldirectorio dir_instalación_WC/binysusarchivos.
SielIDdeusuario debasede datosnotiene laautorizaciónnecesaria mencionadaantes,debeotorgarestaautorizaciónutilizandoelmandato chmod.
c. Desdeeldirectoriodir_instalación_WC/bin,ejecuteelmandatosiguiente: acpload nombre_base_datos usuario_base_datos contraseña_usuario_base_datos
nombre_archivo_xml_políticas[nombre_esquema]
Por ejemplo: acpload mall dbuser dbusrpwd defaultAccessControlPolicies.xml
Para 400 :sihacreadoarchivosXMLpersonalizados,debeutilizarla víade accesocompletaalaDTDensu archivo.LasDTDdepolíticasde controldeaccesoseencuentranendir_instalación_WC/xml/policies/dtd. d. Compruebesilosarchivosdeanotacionesacugload.log,acpload.logy
acpnlsload.logendir_instalación_WC/logs contienenerrores.Para 400 losarchivosdeanotacionesseencuentranen
dir_usuario_WC/instances.
5. ActualiceelRegistrodepolíticasdecontrolde accesoenlaConsolade administraciónrealizandolosiguiente:
a. AbralaConsoladeadministración:
2000 Developer
https://nombre_sistpral/webapp/wcs/admin/servlet/ToolsLogon?XMLFile= adminconsole.AdminConsoleLogon
donde nombre_sistpraleselnombreTCP/IPtotalmentecalificadode la máquinadelentornode desarrollode WebSphereCommerce-Express.
400 Linux Windows
https://nombre_sistpral:8002/adminconsole
donde nombre_sistpraleselnombreTCP/IPtotalmentecalificadode WebSphereCommerceServer.
b. PulseConfiguración>Registro.
c. Enlalistaderegistros,seleccionePolíticasdecontroldeacceso. d. PulseActualizar.
Almacenamiento
en
antememoria
de
las
páginas
de
tienda
Almismo tiempoquedesarrollaelescaparate,tambiénnecesitadeterminarcómo almacenar enlaantememorialas páginasdetienda. Estaseccióntratasobrela creacióneimplementación deunaestrategiade almacenamientoenantememoria paralatienda.
VisualizacióndearchivosJSPobsoletos
Tendrá queestablecer unintervalo derecargade JSPenelentornode WebSphereCommerceServer.Sinoestableceelintervalode recargadeJSP, noveráloscambios enlas páginasJSPcuandosevuelvaacargaruna página. Loscambios enlas páginasJSPseránvisiblesalcabode 30minutoso cuando sereinicieelservidor.
1. Abraelarchivoibm-web-ext.xmienuneditor.Elarchivo seencuentraen eldirectoriosiguiente:
dir_instalación_WAS/config/cells/nombre_sistpral/applications/
WC_nombre_instancia.ear/deployments/WC_nombre_instancia/ Stores.war/WEB-INF
2. Localiceelelementowebappext.Esteelementoestácercadelprincipiodel archivo.
3. EstablezcaelatributoreloadingEnabledentrue.Sielatributonoexiste, añádalo.
4. EstablezcaelvalordelatributoreloadingIntervalen0.Sielatributono existe,añádalo.
5. Guardeelarchivo. 6. Reinicieelservidor.
Planificación
de
la
estrategia
de
almacenamiento
en
antememoria
Tenga encuentalassiguientescuestiones:
v ¿Quépáginasdebenalmacenarseenantememoria? + + + + + + + + + + + + + + + + + +
Laspáginasquesonbuenascandidatasparaalmacenarlasenantememoriason laspáginasa lasqueseaccedeconfrecuencia,queademássonestablesdurante unperíododetiempoy queincluyencontenidoquepuedenvolverautilizar numerososusuarios. Porejemplo,laspáginasdevisualización decatálogoson buenascandidatasparahabilitarelalmacenamientoenantememoria.
v ¿Cómodeben almacenarselaspáginasenlaantememoria,comopáginasenteras ocomofragmentosdepágina?
WebSphereCommerceutilizaelservicio deantememoriadinámicade
WebSphereApplicationServer.EstopermitequeWebSphereCommercepueda darsoportealalmacenamientoenantememoriade páginasenterasyde fragmentosdepágina.Laspáginasdetiendasepueden almacenarenla
antememoriautilizandoelalmacenamientoenantememoriade páginasenteraso defragmentos,ounacombinacióndelosdosmétodos.
AlmacenarenlaantememoriaunapáginaWebcompletasimplementealmacena lapágina enteracomounaentidad,aunqueestécompuestade variosfragmentos máspequeños.Losfragmentosdepágina puedenincluiruna cabecera,una barralateralounpiedepáginaseparado. Inclusoelcuerpoprincipalde la páginapuedeestardivididoenvariosfragmentos.Porejemplo,unfragmento delcuerpoprincipaldelapáginapuedemostrarunproductomientrasqueun segundofragmentopuedemostrarelprecio.Fragmentarlaspáginaslepermite mostrarcontenidopersonalizadoparausuariosindividuales.Laspáginasde tiendade ejemploqueseproporcionanconWebSphereCommerceestán compuestasdevariosfragmentos(cabecera,barralateral,piede página, contenidoprincipal).
Almacenarenlaantememoriafragmentosindividualeslepermitealmacenarlas partesde lapáginaqueunmayornúmerodeusuariosvolveráa utilizar.Siuna páginacontieneinformaciónpersonalizada sóloparaunpequeñosegmentode suclientela,almacenarestapáginaenlaantememoriacomounapágina entera nopermitirá quelapáginasevuelvautilizarconmuchafrecuencia.Sóloun pequeñosegmentodeusuariospodráalgunavezreutilizaresapágina
almacenadaenantememoria.Porejemplo, unapáginamuestraunmensajede bienvenidaespecíficoparaelclienteenlacabecera.Lapáginasealmacenaenla antememoriabasándoseenelIDde usuario;porlotanto,sóloeseclientepodrá algunavezreutilizaresapáginaalmacenadaenantememoria.Sinembargo,si descomponeesapágina enfragmentos,puedealmacenarenantememorialos fragmentosquesereutilizanparalamayoríadelosclientes.Porejemplo, los fragmentosdepiedepágina,barralateralyvisualizacióndeproductospueden seraplicablesa todoslosusuarios,mientrasquelosfragmentos deprecioy cabecerasepuedenpersonalizar.Cuandosesolicitalapágina,losfragmentos individualessereagrupanparacomponerlapágina.
v ¿Cómosesolicitalapágina oelfragmentodepágina?
ElmodoenquesesolicitaelarchivoJSP(tantosiesunapágina comoun fragmentode página)determinaelmodoenelqueWebSphereApplication Serverloalmacenaráenlaantememoria.Porejemplo,WebSphereApplication Servernecesitasabersielarchivo JSPsevisualizacomorespuestaa unservlet, unobjeto,unEJBounmandato.Compileunalistade cómosesolicitacada páginaofragmentoquepiensaalmacenarenlaantememoria.
v ¿Cómoseinvalidanlosdatosalmacenadosenantememoria?
Paracadapágina ofragmentodepáginaquetengapensadoalmacenar en antememoria,determineenquécasolapáginaofragmentoalmacenadoen antememoriadeja deserválido.Acontinuación,eliminede laantememorialas entradascorrespondientes.Esteprocesoseconocecomoinvalidación.Para determinarcuándounapáginaalmacenadaenantememoriahacambiado,ypor consiguienteyanoesválida,determinequépuedehacerquelapágina
almacenadaenantememoriaquedeobsoleta.Porejemplo,una páginadecarro delacompraalmacenadaenlaantememorianoesválidacuando uncliente añadeunnuevoartículoalcarro.Laspáginasalmacenadasenlaantememoria