[email protected] software architecture group university of waterloo canada architecture...
TRANSCRIPT
Software Architecture Group
University of Waterloo
CANADA
Architecture Recovery Of Web Applications
Web Applications
“Online in 60-90 days, Innovate at Web Speed, Change on a Dime”..Asera Inc.
“Zero to Portal @ Web Speed”..Oracle
SE Challenges for Web Apps?
• The speed of development
• The speed of evolution
• The different sets of concerns
• The expectations of the user
• The origins of the web
Introduction to ASP
Simple html file: (foo.html)<html>Welcome to CNN.COM</html>
ASP file: (foo.asp)<html>Welcome to <% Write(“CNN.COM”) %></html>
Introduction to ASP
Interesting asp file: (foo2.asp)
<html>Welcome to <% Write(Server.name) %>
</html>
Introduction to ASP
• ASP files are preprocessed by the web server
• ASP files access web server built in objects or distributed objects (COM/DCOM/COM+/CORBA)
• ASP files can access databases too
Introduction to ASP
file.asp file.html
DataTables
COM/CORBAObjects
Web ServerPre-processor
Data Flow
Structure of an ASP Page
ASP Page
Client ScriptsServer ScriptsHTML
JScriptPerlVBScript VBScriptJavaScript
Generating the info to visualize
HTMLExtractor
DB AccessExtractor
ASP Page COMSource Code
COMBinary
ASP Code
ASPExtractor
HTML Facts
ASP Facts
Data Facts
LanguageExtractor
BinaryExtractor
SourceCode Facts
Binary Facts
FACTBASE
Generating Views for Web App.HTML Facts
ASP Facts
Data Facts
SourceCode Facts
Binary Facts
Contain.
Grok
Layout
Viewer
Conclusion
• Web Apps developers face different challenges than Traditional Soft
• Visualization of Web Apps using our current tools is possible
• Large Web Apps have been visualized
FACTBASE
Generating Views for Web App.HTML Facts
ASP Facts
Data Facts
SourceCode Facts
Binary Facts
Contain.
Grok
Layout
Viewer
The Web App Domain Model
ELS
CLS
ALSHigh
Low
Abs
trac
tion
Java, JavaScript, VBScript, C, C++, etc.
Component & Subsystem
ASP, Database, DLL, COM Object, etc.
Entity Level Schema for JavaScript
Function Object
Call
Variable
UseVar
Instantiate/Reference
Reference
Data Type
DBTable
COMObject
UseDBTable
UseDataType
Instantiate/Reference
ALSCLSELS
Entity Level Schema for VBScript
Function/Procedure
Object
Method Property
Call
Variable
PropDclByUseVar
UseVar
MthdDclBy
UseProp
UseProp
Call
Instantiate/Reference
Instantiate/Reference
DBTable
COMObject
Instantiate/Reference
Instantiate/ReferenceUseDBTable
UseDBTable
Call
ALSCLSELS
Common Entity Level Schema for Object Based Languages
UseVar
JSObjectVBSObject
UserObjectFunction
JSFunctionVBSFunction
VBSProcedure
JSVariableVBSVariable
Variable
JSDataTypeVariant
DataType
Instantiate
Call
UseDataType
Call
ASPFile
UseVar
IncludeFuncDefBy ObjDefBy
VarDefBy
COMObject
DBTable
UseDBTable
Reference/Instantiate
UseDBTable
Reference/Instantiate
ALSCLSELS
Component Level Schema for Web Applications
COMObject
DBTable
Call
ASPFile
Include
UseDBTable
UseVar
Reference
DLL
Instantiate
Contain
HTMLRef
WebObject
HTMLRef
Reference Reference
UseDBTable
ALSCLSELS
Architecture Level Schema
Contain
Subsystem Component
Contain
Contain
DependOnDependOn
DependOn
ALSCLSELS
Conclusion
• A Web App is the legacy application of the future
• A tool is built to visualize Web Apps and gain a better understanding of them
• A scalable framework is presented to study Web Apps
• Dynamic & Static views are needed to understand Web Apps
“Every day it becomes clear that the Net (Web) is taking its place alongside the other great transformational technologies that first challenged, and then fundamentally changed, the way things are done in the world”, Lou Gestner, CEO of IBM Corp.
A Taxonomy for Web Applications
Dat
a
Control Logic
Service
Catalogue IS
Brochurelow
low
high
high
Hotmail.COM
Amazon.COMGoogle.COM
My webpage
Web App. Vs. Traditional App.
• Technical properties of Web App.:– Concerned with data tables, distributed
objects and multimedia objects instead of variables, procedures and simple objects
– Heavy use of scripting to combine components together
– Implemented using multiple languages