• No results found

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