Extensibility
Extend Microsoft Office Business Scorecard Manager 2005 with advanced analysis solutions
Integrate with LOB Applications
BI Partners can extend Microsoft Offi (more)
Extensibility
Extend Microsoft Office Business Scorecard Manager 2005 with advanced analysis solutions
Integrate with LOB Applications
BI Partners can extend Microsoft Office Business Scorecard Manager 2005 through its Web Services APIs and SharePoint platform
BPM ISVs can extend Microsoft Office Business Scorecard Manager 2005 using it’s SharePoint platform and web services APIs to provide an end to end BPM offering
From:
legacyassociates
Views: 1078
Comments: 0
small business consulting, management support services with assessments, strategic business plans, feasibility studies, and mentoring programs.
Increase the competitive opportunities
Provide young players with heroes
Create marketable properties
Provide infrastructure for competitive equity
A (more)
Increase the competitive opportunities
Provide young players with heroes
Create marketable properties
Provide infrastructure for competitive equity
Assign real value to elite ringette (less)
From:
jane
Views: 2786
Comments: 0
A clear statement of your company’s long-term mission. Try to use words that will help direct the growth of your company, but be as concise as possible.
From:
emily
Views: 2644
Comments: 0
Service Identification Framework (SIF) is a methodology based on best practices and real-life experiences identifying services
Sample Ad Advertise your business on myplick. Only $2.00 a month.
Comments:
Notes:
Slide 1: Business Object & ActiveX/COM
Toward Enterprise Applications
Slide 2: What are Business Objects
During this semester we will gain all the tools to deploy a real enterprise application. Business Objects are the core of these applications
Slide 3: What are business Objects
Business objects are designed to represent ‘real objects' and concepts in our business. Here are some examples of these ‘real objects':
An employee A purchased part A manufactured part A work order A customer Bank Account
Slide 4: What are business Objects
The idea behind using software business objects is to create representations of these same objects inside our applications. an employee might create a work order to build a manufactured part from one or more purchased parts that are then sold to the customer. A well-designed customer object can contain all the data and procedures needed to represent a customer throughout an entire business and this can be used across all the applications for that business.
Slide 5: Why Business Objects?
Intuitive Modeling of Our Solution for business needs Code Reuse Creating Building Blocks
Extendibility, Usability, Scalability…
Slide 6: Modeling Our Business
Employee Manufactured Part
Is a( Inh eri t )
Creates (initiate)
d uil B
Uses (reference)
Is
a( Inh
Work Order
t ini s(
e iat
eri t)
+
d ho t me
)
Purchased Part
Slide 7: Modeling Our Business Rules CRM Sample
Lets examine how we model business needs as business objects in order to implement a System
Slide 8: Modeling Our Business Rules CRM Sample
Order Object
GetOrderDetails() GetOrderItems() As Collection AddOrderItem() ….
OrderItem Object
Status as OrderItemStatus UpdateHours() UpdateStatus() GetDetails() ….
Slide 9: OrderItem Object
Status as OrderItemStatus UpdateHours() UpdateStatus() GetDetails() GetNextPossibleStatus()
OrderItemStatus Object
Name as String ValidUntill as Date RequirePayment as Boolean ……
Slide 10: Implementing Business Objects
In this section we will examine the technologies that enable creating business objects
Slide 11: Components Library
Problem
We have a code for customer and we are using it in two different projects Solution 1: 2 copies of the source file There's no easy way to keep them all synchronized!!!
Solution 2: Library-oriented design
Slide 12: Creating Component Libraries in Visual Basic
ActiveX Technology: Store Classes (Components) in a DLL
Standard format DLL = Dynamically Loaded Library, Executable File
Language Independent
You can create your ActiveX library in C++ and use it in VB and vise versa
Enables communication between applications and components
e.g. embedding excel chart in PowerPoint
Slide 13: Libraries Sample
Power Point Library Real Audio Library
This Library contains only one class The Library is compiled in raocx32.dll file Library that store 39 classes.
Any VB Client application can use any of these objects in these Libraries
Slide 14: Creating Component Sample
Slide 15: Example – Using Excel Component
Dim objExcel As Excel.Application Dim objBook As Excel.Workbook Dim objSheet As Excel.Worksheet Set objExcel = New Excel.Application Set objBook = objExcel.Workbooks.Add Set objSheet = objExcel.Worksheets.Add 'Allow user to view spreadsheet. objExcel.Visible = True objSheet.Cells(1, 1) = "Months" objSheet.Cells(1, 2) = "1997" objSheet.Cells(1, 3) = "1998" objExcel.Range("A1: C1").Font.Bold = True objExcel.Range("A1: C1").Font.Size = 16 objExcel.Range("A1: C1").Font.Shadow = True Dim intCount As Integer For intCount = 1 To 12
Object variable declarations. Create the object references. Set up titles.
Change the font attributes of the headers. Seed data into Excel.
objSheet.Cells(intCount + 1, 1) = lblLabels(intCount - 1).Caption objSheet.Cells(intCount + 1, 2) = txt1997(intCount - 1).Text objSheet.Cells(intCount + 1, 3) = txt1998(intCount - 1).Text Next
Slide 16: Email Component Sample http://www.aspemail.com/
Dim Mail Set Mail = CreateObject("Persits.MailSender") Mail.Host = "mail.idc.ac.il" ' Specify a valid SMTP server Mail.From = "bbinnun@idc.ac.il"' Specify sender's address Mail.FromName = "Boaz Binnun" ' Specify sender's name Mail.AddAddress "someone@idc.ac.il", "someone" Mail.AddReplyTo "bbinnun@idc.ac.il" Mail.AddAttachment "c:\cakes.gif" Mail.Subject = "Thanks for ordering our hot cakes!" Mail.Body = "Dear Sir:" & vbNewLine & "Thank you for your business." Mail.Send
Slide 17: CreateObject Vs. New
CreateObject (Late Binding)
The object type is not known at compile time The application specifies the object name at run time In case of problem (e.g. library does not exist) a run time error will raise No Type checking
New (Early Binding)
At compile time the compiler will try to locate the library and object. Type checked
Slide 18: Enterprise application N-Tier Client Server
Typical Large Enterprise Application implement business Logic in a middle tier:
Presentation Layer Business Tier Data Tier
CRM.exe
Database
CRM_bus.dll
http://www.crm.com
CRM_db.dll
Slide 19: Enterprise application N-Tier Client Server
Security: Putting a physical and application layer between the application and the data hence providing better security
Business rules are always enforced, data integrity always protected If a hacker attacks the web server the Database is still safe
Managing resources better:
if I only use the connection twice a minute, why not allow another client to use it in the meantime?
Performance: This central application server can more efficiently manage network traffic and the load on the database server. Scaleable: separating the UI from the business and the DB makes the application easier to maintain and to scale Availability: We can put several servers in each tier ensuring that if one falls the other will still server the users
Slide 20: Lets examine what a real application is made out of
Presentation Layer
Business Tier
Data Tier
CRM.exe
Database
CRM_bus.dll
http://www.crm.com
CRM_db.dll
Slide 21: The Database
Slide 22: Database design issues
The database is the base building block of the application Bad database design and implementation could cause harsh problem in the entire application (‘earth quack’) normalization rules, FK , PK check constrains, triggers , indexes etc.. We will review database in future lectures
Slide 23: The Data Tier - Data Access Layer
Provides the interface to the data in database
Slide 24: The Business Logic Layer
Interact with the database using the Data Access Library. Usually stored on a dedicated server Executed using a Middleware – system that manages components Encapsulates Business Rules
Slide 25: The User Interface
Interacts with the Business logic components Can be implemented in any interface (Windows, Web, Mobile, Palm, Mac etc..)
Slide 26: Architecture summery
Slide 27: Example: the Distinct Layers of an Application.
This following example demonstrates the distinct layers of an application. The application:
Very simple, has a single form and uses a simple text file as a logical database.
txtName cmdGet cmdPut
Slide 28: The simple application Business rules
We have two business rules.
The name must be in uppercase The name is required.
Private Sub txtName_LostFocus() txtName.Text = UCase$(txtName.Text) End Sub Private Sub cmdPut_Click() If Len(Trim$(txtName.Text)) = 0 Then MsgBox "You must enter a name", vbInformation Exit Sub End If End Sub
Slide 29: Simple application DB
save the name to 'database' (file) pull the name back in from our 'database'
Private Sub cmdPut_Click() Dim lngFile As Long If Len(Trim$(txtName.Text)) = 0 Then MsgBox "You must enter a name", vbInformation Exit Sub End If lngFile = FreeFile Open "C:\TEMP.TMP" For Output As lngFile Print #lngFile, txtName.Text Close lngFile End Sub Private Sub cmdGet_Click() Dim lngFile As Long Dim strInput As String lngFile = FreeFile Open "C:\TEMP.TMP" For Input As ngFile Line Input #lngFile, strInput txtName.Text = strInput Close lngFile End Sub
We also add some code to the Get and Put events (view source)
Slide 30: Viewpoint of a Three-tier Logical Model
We'll try to determine which parts of the program performs:
Presentation The business logic The data processing.
Slide 31: Presentation Layer
The presentation layer contains the form and some of the code behind it:
txtName.Text = strInput MsgBox "You must enter a name", vbInformation txtName.Text = UCase$(txtName.Text)
What are the Problems:
Next slide->
Slide 32: Presentation Layer
The presentation code is in the middle of other code - not interface related! The line txtName.Text = UCase$(txtName.Text) does 2 things: It converts the name to uppercase (a business rule), Displays the name back into the form so that the user can see the final result (a presentation choice).
No way of changing the interface without tampering with business-related code Can't change our business rules without affecting the interface code.
Slide 33: The Business Tier
Here again the business code is inside other layers code. Problems:
Len(trim$(txtName.Text)) = 0. txtName.Text = UCase$(txtName.Text). The same problem as before. No Reuse
Suppose we need to provide access the txtName to some other program ( or from some other part of the same program): since the business logic is so tied into the display of this form, we'd have to duplicate the business code elsewhere.
Slide 34: The Data Services Tier
the data service code :
lngFile = FreeFile. Open "C:\TEMP.TMP" For Output As lngFile. Print #lngFile, txtName.Text. Close lngFile. Open "C:\TEMP.TMP" For Input As lngFile. Line Input #lngFile, strInput. txtName.Text = strInput. Close lngFile.
the data processing is mixed right in with the presentation and business logic, making it difficult to change the data processing without risking the other parts of the program.
Slide 35: The N-Tier solution
The ideal solution is to pull:
the user-interface code into one area the business logic into another
the data processing into a third.
make it much easier to change any section of our program with less risk of causing bugs in the other tiers. we can change our presentation code without impacting the business code itself. Enable us to store on different server (security, availability etc..) Facilitate code reuse
very easy for our application to show the same business information through various presentations.
Slide 36: Building Three-tier Solution
In our solution will build two components (ActiveX dll) and an client application
Data access layer component Business layer component Presentation layer
three-tier-sample.vbg
Slide 37: Solution architecture
Slide 38: What Have We Gained
Suppose we wish to change the database to SQL server, what changes would it require?
Since the interface (GetData, StoreData) remains, all we need is to change the DataAccess layer!
Suppose we wish to add a BR that every name that begins with dr. Will be added to a special record.
The method store data in the business layer is the only thing that should be modified.
We found a bug in the DataAccess layer.
No body should be notified just change the dll!
We want all the employees in to work with the program over the network.
Put the dll’s in the organization application server. Update the client to call methods over the network (very simple, we will see how to do this.).