• No results found

Software Performance Engineering SUT. Prof John Grundy Dean, Software & Electrical Eng

N/A
N/A
Protected

Academic year: 2021

Share "Software Performance Engineering SUT. Prof John Grundy Dean, Software & Electrical Eng"

Copied!
18
0
0

Loading.... (view fulltext now)

Full text

(1)

Software Performance

Engineering Research

@ SUT

Prof John Grundy

(2)

Swinburne

-

Previous / existing projects

-

Possible areas for R&D collaboration / collaboration

support

-

Possible ways to engage with students / inspire next

generation of performance engineers / IT professionals

Outline

(3)

Swinburne

-

Inspiration

-

SoftarchMTE

-

ArgoMTE

-

MaramaMTE

-

StressCloud

-

Enterprise Environment Emulation

-

Possible R&D projects

(4)

Swinburne

-

Performance engineering 4GL/Informix systems (late

80s!)

-

Teaching large-scale software engineering (90s)

-

CSIRO research into “Middleware Technology

Evaluation” (late 90s / begin 00s)

-

Business process automation company consulting

-

Large utility software company consulting

-

Large Health IT company consulting

(5)

Swinburne

-

Empirically test planed architecture (or re-engineered architecture) vs

simulation / benchmarking

-

Model architecture of complex enterprise system

-

Model load tests

-

Generate client and server – automatic generation of “rapid

prototype” apps – code & scripts

-

Deploy code/scripts to hosts

-

Run tests

-

Collected results and visualise

-

Change models, re-generate, re-run, compare results…

(6)

Swinburne

(7)

Swinburne

Code gen

j2ee_videoWebApp.xml

<?xml version="1.0" encoding="UTF-8" ?> <AppServer> <Name>j2ee_videoWebApp</Name> <Type>j2ee</Type> <RemoteObj> <Name>videoSearch</Name> <Type>jsp</Type> <StatesReturned> <State Table="video">id</State> <State Table="video">name</State> <State Table="video">description</State> <State Table="video">status</State> <State Table="video">stock</State> . . </RemoteObj> </AppServer> .

Jsp.xsl

<xsl:template match="RemoteObj"> <xsl:for-each select="StatesReturned/State">

<xsl:value-of select="."/><![CDATA[<INPUT type=text name="]]><xsl:value-of select="."/><![CDATA[" size="115" value="]]>&lt;%=myBean_<xsl:value-of select="../../Name"/>.get<xsl:value-of select="."/>()%&gt;"

</xsl:for-each> . . </form> </body> </html> ]]> </xsl:template> </xsl:stylesheet>

videoSearch.jsp

<html> . .

id<INPUT type=text name="id" size="115" value="<%=myBean_videoSearch.getid()%>"> name<INPUT type=text name="name" size="115" value="<%=myBean_videoSearch.getname()%>">

description<INPUT type=text name="description" size="115" value="<%=myBean_videoSearch.getdescription()%>"> status<INPUT type=text name="status" size="115" value="<%=myBean_videoSearch.getstatus()%>"> stock<INPUT type=text name="stock" size="115" value="<%=myBean_videoSearch.getstock()%>"> </form> </body> </html>

(3)

(2)

(1)

Option Explicit Dim strServer, port strServer = "130.216.36.173" port = 80 Sub Main() call SendRequest1() call SendRequest2() call SendRequest1() call SendRequest2() End Sub Main Sub SendRequest1()

Dim oConnection, oRequest, oResponse, oHeaders, strStatusCode, strPath If fEnableDelays = True then Test.Sleep (0)

Set oConnection = Test.CreateConnection(strServer, port, false) . . . strPath = "/j2ee_videoWebApp/videoSearch.jsp" oRequest.Path = strPath . . . End Sub

(4)

(8)

Swinburne

Compile/Deploy/Run Tests

Gen, deploy, thrash, monitor

Client

Database Web app server

1. Generate .jsp/.asp, .java/.c,

.bat, .sql, .war etc files

2. Deploy generated test-bed files

to client, server host machines

ACT + client descriptor

J2EE web application Database

SoftArch/MTE/Thin

3. Instruct

Application Centre

Test to perform tests

4. Display and

Analyse results

(9)

Swinburne

Examples of Test Results via ACT

(10)

Swinburne

-

ArgoMTE – integrated into Argo/UML tool (vs stand-alone

SoftArch/MTE tool)

-

MaramaMTE – Eclipse-integrated (EMF/GEF) tool

-

Load modelling – using “stochastic form charts”- probabalistic

model of client load (and server-server/db load)

-

Generated JMeter scripts for (some) load testing

-

Web crawling / API crawling to synthesize load models

-

StressCloud – latest Eclipse GMF-based tool for cloud energy/

performance testing

(11)

Swinburne

Meta-model abstractions:

Clients, Servers, Databases

Remote objects, tables

Requests, services

Calls, containment, uses

Operations, parameters, ports, machines,

Inputs, Transitions

Marama/MTE in use

(7-8 years old pictures)

<jmeterTestPlan version="1.2" properties="1.8"> <hashTree>

<TestPlan guiclass="TestPlanGui" testclass="TestPlan" testname="Test Plan" enabled="true"> <stringProp name="TestPlan.user_define_classpath"></stringProp>

<stringProp name="TestPlan.comments"></stringProp> <boolProp name="TestPlan.functional_mode">false</boolProp> <boolProp name="TestPlan.serialize_threadgroups">false</boolProp>

<elementProp name="TestPlan.user_defined_variables" elementType="Arguments"

guiclass="ArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true"> <collectionProp name="Arguments.arguments">

<elementProp name="server" elementType="Argument"> <stringProp name="Argument.value">localhost</stringProp> <stringProp name="Argument.name">server</stringProp> <stringProp name="Argument.metadata">=</stringProp> </elementProp>

<elementProp name="port" elementType="Argument"> <stringProp name="Argument.value">8000</stringProp> <stringProp name="Argument.name">port</stringProp> <stringProp name="Argument.metadata">=</stringProp> </elementProp>

<elementProp name="next_page" elementType="Argument"> <stringProp name="Argument.value">page_index</stringProp> <stringProp name="Argument.name">next_page</stringProp> <stringProp name="Argument.metadata">=</stringProp> </elementProp> </collectionProp> </elementProp> </TestPlan> <hashTree>

<ThreadGroup guiclass="ThreadGroupGui" testclass="ThreadGroup" testname="page flow" enabled="true"> <stringProp name="ThreadGroup.ramp_time">1</stringProp>

<boolProp name="ThreadGroup.scheduler">false</boolProp>

<stringProp name="ThreadGroup.on_sample_error">continue</stringProp> <longProp name="ThreadGroup.start_time">1076438592000</longProp>

<elementProp name="ThreadGroup.main_controller" elementType="LoopController"

guiclass="LoopControlPanel" testclass="LoopController" testname="Loop Controller" enabled="true"> <boolProp name="LoopController.continue_forever">false</boolProp> <stringProp name="LoopController.loops">1</stringProp> </elementProp> <stringProp name="ThreadGroup.num_threads">5</stringProp> <stringProp name="ThreadGroup.duration"></stringProp> <stringProp name="ThreadGroup.delay"></stringProp> <longProp name="ThreadGroup.end_time">1076438592000</longProp> </ThreadGroup>

(12)

Swinburne

-

Part of ARC Discovery project

-

Energy and performance testing

tool for virtualised systems

(targeted to cloud)

-

Eclipse IDE modeller –

architecture, load model, app

model (or real app)

-

Generate, run Jmeter tests

-

Monitor VM stats

-

Monitor physical machine energy

usage

StressCloud

Cloud Server

VirtualMachine

VirtualMachine

Apache Tomcat

…...

Load Test Web Service

MS SQL

Server

Apache Tomcat

Load Test Web Service

MS SQL

Server

Monitor and Load Generator

StressCloud

PowerNode

GreenWave

Gateway

(13)

Swinburne

(14)

Swinburne

-

Part of ARC Linkage w CA Labs

-

Want to emulate large-scale deployment environment –

possibly 000s systems e.g. for testing CA identify

manager system, PeopleSoft ERM system, Twitter server,

legacy mainframe clients,

-

Record interaction “traces” e.g. LDAP binary protocol, PS

SOAP messages, Twitter JSON, Mainframe text msgs

-

When get request message, use clustering/distance

functions/translation functions to synthesize response

Enterprise Emulation Tool

(15)
(16)

Swinburne

-

Evaluate SPE tools – you and us; yours and ours!

-

Set up SPE “lab” / platform / testing tools e.g. for cloud, enterprise

application performance engineering

-

Identify new tools / extensions / improvements -> R&D engineers,

PhD, Post-docs, other student projects in collaboration with you

-

Best practice usage of SPE tools for others to learn from

-

Industry experience reports of SPE approaches, tools

-

Other ideas??

-

Co-funding: NICTA / SUT software innovation lab; Vic govt innovation

fund & R&D vouchers ; PhD schols (NICTA, SUT, Govt, company) ;

student interns (Vic Govt, NICTA, SUT, company)

(17)

Swinburne

-

Guest lecture

-

Teach a unit / part of a unit

-

Host student projects

-

Host student site visits

-

Meet & greet w staff and students

-

Co-supervise R&D students, PhDs, R&D engineers,

post-docs

-

Other ideas??

(18)

References

Related documents

Εσείς είσαστε ή εγώ, γείτονες, που θα ‘πρεπε να επαναστατήσω; Όταν ο έβδομος εαυτός μίλησε έτσι, οι άλλοι έξι εαυτοί τον κοίταξαν με οί- κτο μα, χωρίς να

Company Member The Wedding: Peepolykus (R&amp;D) LIPA Javier Marzan/.

Rajah di bawah menunjukkan contoh tumbuhan akuatik yang mempunyai ciri-ciri khas untuk menyokong berat dalam air.. Diagram below shows two examples of aquatic plants that have

την Γlr;οποvτiδα o κ6ριoq &amp;c μec σκεττη.. Mην &amp;νηoυxiq. Kι' flθελε να τιμτioη τδ δδρo τo0 Bαoιλιiα.. ΣEΛlΣ 22 KΩNΣTANTlNoΣ ΠAΛAloΛoΓoΣ

Bangladesh (Web &amp; Software Programming, Offshore Outsourcing Service), Bulgaria (Programming and R&amp;D),. Ukraine (Programming and R&amp;D), Belarus (Programming, R&amp;D),

In order to ensure that the customer remains at the forefront of the operation, Western uses tracking software throughout its operation, from order entry to shipping and

Many of these studies assumed that this “shift” caused the problem of miss- ing target reports but failed to consider the possibility that in order to achieve high overall accuracy,

With off-the- shelf 10GbE gear, Solarflare’s server adapter and the Arista switch can be used as the foundation of messaging systems for electronic trading and the support