US7669205B2 - Using messages to extend CRM functionality - Google Patents
Using messages to extend CRM functionality Download PDFInfo
- Publication number
- US7669205B2 US7669205B2 US11/290,078 US29007805A US7669205B2 US 7669205 B2 US7669205 B2 US 7669205B2 US 29007805 A US29007805 A US 29007805A US 7669205 B2 US7669205 B2 US 7669205B2
- Authority
- US
- United States
- Prior art keywords
- request message
- business
- name
- crm
- target
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related, expires
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/546—Message passing systems or structures, e.g. queues
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/10—Program control for peripheral devices
- G06F13/102—Program control for peripheral devices where the programme performs an interfacing function, e.g. device driver
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q10/00—Administration; Management
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/51—Discovery or management thereof, e.g. service location protocol [SLP] or web services
Definitions
- FIG. 6 may illustrate the Target class hierarchy for two examples.
- the steps of the claimed method and apparatus are operational with numerous other general purpose or special purpose computing system environments or configurations.
- Examples of well known computing systems, environments, and/or configurations that may be suitable for use with the methods or apparatus of the claims include, but are not limited to, personal computers, server computers, hand-held or laptop devices, multiprocessor systems, microprocessor-based systems, set top boxes, programmable consumer electronics, network PCs, minicomputers, mainframe computers, distributed computing environments that include any of the above systems or devices, and the like.
- Computer 110 typically includes a variety of computer readable media.
- Computer readable media can be any available media that can be accessed by computer 110 and includes both volatile and nonvolatile media, removable and non-removable media.
- Computer readable media may comprise computer storage media and communication media.
- Computer storage media includes both volatile and nonvolatile, removable and non-removable media implemented in any method or technology for storage of information such as computer readable instructions, data structures, program modules or other data.
- Computer storage media includes, but is not limited to, RAM, ROM, EEPROM, flash memory or other memory technology, CD-ROM, digital versatile disks (DVD) or other optical disk storage, magnetic cassettes, magnetic tape, magnetic disk storage or other magnetic storage devices, or any other medium which can be used to store the desired information and which can accessed by computer 110 .
- Communication media typically embodies computer readable instructions, data structures, program modules or other data in a modulated data signal such as a carrier wave or other transport mechanism and includes any information delivery media.
- modulated data signal means a signal that has one or more of its characteristics set or changed in such a manner as to encode information in the signal.
- the system memory 130 includes computer storage media in the form of volatile and/or nonvolatile memory such as read only memory (ROM) 131 and random access memory (RAM) 132 .
- ROM read only memory
- RAM random access memory
- BIOS basic input/output system
- RAM 132 typically contains data and/or program modules that are immediately accessible to and/or presently being operated on by processing unit 120 .
- FIG. 1 illustrates operating system 134 , application programs 135 , other program modules 136 , and program data 137 .
- removable/non-removable, volatile/nonvolatile computer storage media that can be used in the exemplary operating environment include, but are not limited to, magnetic tape cassettes, flash memory cards, digital versatile disks, digital video tape, solid state RAM, solid state ROM, and the like.
- the hard disk drive 141 is typically connected to the system bus 121 through a non-removable memory interface such as interface 140
- magnetic disk drive 151 and optical disk drive 155 are typically connected to the system bus 121 by a removable memory interface, such as interface 150 .
- the computer 110 may operate in a networked environment using logical connections to one or more remote computers, such as a remote computer 180 .
- the remote computer 180 may be a personal computer, a server, a router, a network PC, a peer device or other common network node, and typically includes many or all of the elements described above relative to the computer 110 , although only a memory storage device 181 has been illustrated in FIG. 1 .
- the logical connections depicted in FIG. 1 include a local area network (LAN) 171 and a wide area network (WAN) 173 , but may also include other networks.
- LAN local area network
- WAN wide area network
- Such networking environments are commonplace in offices, enterprise-wide computer networks, intranets and the Internet.
- Any change to the API may be implemented by addition of a new message without changing the signature of the method or impacting the existing consumers of the method;
- a message-oriented API may allow the users of the business application to execute business logic and access the business operation and data via messages.
- FIG. 2 may be an illustration of the design of such a system, for example, in a customer relationship management (“CRM”) system.
- CRM may be a way to maintain having the ability to organize and maintain a connection with clients, customers and service agents with regards to business relationships and customer satisfaction and
- a CRM application may be an acronym for customer relation management application which are programs by which a customer can be profiled and tracked to assist a sales staff in providing better service for that customer, resulting in improved customer relations overall.
- the CRM web service 200 may be the interface that users of the business application use.
- the interface exposes the new messages (extension) that have been added to the CRM system after customization as well as the original messages that initially were included in the system through the same interface.
- the same interface and programming model that is used for the system original business Entities is used for custom Business Entities providing a seamless programming experience.
- This web service 200 has a well defined web service description provided for in Web Service Definition Language (WSDL) and may be defined in any other desired definition language.
- WSDL may be an XML-based contract language for describing the network services offered by a Web service provider via UDDI.
- UDDI Universal Description, Discovery, and Integration and may be an XML and SOAP-based lookup service for Web service consumers to locate Web Services and programmable resources available on a network.
- WSDL may describe a Web service to Web service consumers by its public methods, data types of all parameters, return value, and bindings.
- SOAP stands for Simple Object Access Protocol which may be a lightweight, XML-based messaging protocol used to encode the information in Web service request and response messages before sending them over a network.
- SOAP messages may be independent of any operating system or protocol, and may be transported using a variety of Internet protocols, including SMTP, MIME, and HTTP.
- the WSDL is dynamically generated for the users of the system and enables them to access the web service and program against it.
- the system may have a single web service method, called Execute.
- An example may look like:
- the Execute method may take Request messages 210 and return Response messages 220 .
- Request messages may be instantiated and built by a client of the CRM web service 230 .
- the caller may send the message to the CRM platform by calling the Execute method on the Web service 230 .
- the message may be serialized into a SOAP packet by the client 240 before being sent to the CRM web service 200 and then deserialized back to the message object on the CRM Web platform.
- the message may then be sent to the server 250 and processed there.
- the result of message processing may be returned to the caller of the Execute web method via a response message 220 .
- Both request and response message content may be strongly typed allowing the caller to use a better development environment support when working with types.
- SOAP is one of the available protocols for exchanging structured information in a decentralized, distributed environment, but that any appropriate protocol may be used.
- FIG. 3 may be a class diagram that illustrates the class hierarchy of Request and Response messages that are used in conjunction with the Execute method.
- Each Request derived class has a corresponding Response derived class.
- CreateRequest class is derived from the Request class and corresponds to CreateResponse class that is derived from the Response class.
- the parameters on a typical web method may be mapped into members of the Request messages 310 and return parameters of a typical web method may be mapped to the members of the Response message 320 .
- All the supported business operations and business logic may be exposed via subclasses of Request messages 330 and may be postfixed with the Request and Response keywords.
- the messages may all start with the Operation name where Operation is a supported business operation in CRM platform. Both of these naming conventions enables easy browsing of the messages in the development environment and improved the API usability.
- FIG. 4 may illustrate a method of using messages to extend functionality of an application programming interface in a CRM system.
- the method may select an operation where the operation is a CRM operation.
- the programming experience may start by the developer choosing the desired business operation (Create an Account, Merge an Account, Send an Email) through selecting a concrete Request message.
- the method may add the target class to the request message and at block 425 , the method may execute the request message.
- the result of the execution may be returned to the caller of the Execute web method via a response message.
- Both request and response message content may be strongly typed allowing the caller to use a better development environment support when working with types. Of course, this is just one way of executing the method and other ways are possible.
- Polymorphism on the request message hierarchy may mean that the same interface can be used for multiple business entity types without the need of creating a new and separate interface for each business entity.
- a CreateRequest can be used to create new instances of different types of business entities via the same message and the same Execute method. This is one of advantages of message oriented approach.
- TargetMerge Business Entity Name>. Create an instance of a class derived from TargetMerge that corresponds to a selected Business Entity.
- the DynamicEntity class 610 may extend the API beyond the strongly typed classes and may provide a generic and extensible way to work with business entities and execute their business logic.
- a user may decide to use the strongly typed business entities classes DynamicEntity 610 format.
- a user also may decide to receive the results of the business operations execution in strongly typed BusinessEntities 620 objects or DynamicEntity 610 format.
- the benefit of DynamicEntity 610 is that at the design time, the user does not need to have fully described web service definition of the specific business entity type and can develop code that dynamically and at runtime discovers various defined business entities in a targeted CRM implementation and work with those entities (execute operations) without having their definitions at design/compile time.
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Business, Economics & Management (AREA)
- Marketing (AREA)
- Entrepreneurship & Innovation (AREA)
- Human Resources & Organizations (AREA)
- Economics (AREA)
- Operations Research (AREA)
- Quality & Reliability (AREA)
- Strategic Management (AREA)
- Tourism & Hospitality (AREA)
- General Business, Economics & Management (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Stored Programmes (AREA)
- Information Transfer Between Computers (AREA)
Priority Applications (6)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US11/290,078 US7669205B2 (en) | 2005-07-01 | 2005-11-30 | Using messages to extend CRM functionality |
| JP2008520337A JP5174661B2 (ja) | 2005-07-01 | 2006-06-30 | Crm機能の拡張にメッセージを使用する方法 |
| KR1020077030120A KR101203284B1 (ko) | 2005-07-01 | 2006-06-30 | 메시지를 이용하여 crm 기능성을 확장하는 방법 |
| PCT/US2006/026008 WO2007005849A2 (fr) | 2005-07-01 | 2006-06-30 | Utilisation de messages permettant d'etendre une fonctionnalite crm |
| EP06786233A EP1899910A4 (fr) | 2005-07-01 | 2006-06-30 | Utilisation de messages permettant d'etendre une fonctionnalite crm |
| CN2006800239355A CN101213572B (zh) | 2005-07-01 | 2006-06-30 | 使用消息扩展crm功能 |
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US69595805P | 2005-07-01 | 2005-07-01 | |
| US11/290,078 US7669205B2 (en) | 2005-07-01 | 2005-11-30 | Using messages to extend CRM functionality |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| US20070006237A1 US20070006237A1 (en) | 2007-01-04 |
| US7669205B2 true US7669205B2 (en) | 2010-02-23 |
Family
ID=37591413
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| US11/290,078 Expired - Fee Related US7669205B2 (en) | 2005-07-01 | 2005-11-30 | Using messages to extend CRM functionality |
Country Status (6)
| Country | Link |
|---|---|
| US (1) | US7669205B2 (fr) |
| EP (1) | EP1899910A4 (fr) |
| JP (1) | JP5174661B2 (fr) |
| KR (1) | KR101203284B1 (fr) |
| CN (1) | CN101213572B (fr) |
| WO (1) | WO2007005849A2 (fr) |
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US8694375B2 (en) | 2011-09-30 | 2014-04-08 | Microsoft Corporation | Determining whether to display message to user in application based on user message viewing history |
Families Citing this family (11)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP4487725B2 (ja) * | 2004-10-25 | 2010-06-23 | 株式会社島津製作所 | 分析データ処理システム及び分析装置 |
| US20080244594A1 (en) * | 2007-03-29 | 2008-10-02 | International Business Machines Corporation | Visual scripting of web services for task automation |
| US8060892B2 (en) * | 2007-04-27 | 2011-11-15 | Microsoft Corporation | Executing business logic extensions on a client computing system |
| US8566780B2 (en) | 2007-06-26 | 2013-10-22 | Microsoft Corporation | Object model based mapping |
| US7747899B2 (en) * | 2007-06-26 | 2010-06-29 | Microsoft Corporation | Providing mapping fault processing |
| US20090327139A1 (en) * | 2008-06-27 | 2009-12-31 | Microsoft Corporation | Loosely coupled hosted application system |
| US9753788B2 (en) * | 2015-07-06 | 2017-09-05 | Microsoft Technology Licensing, Llc | Extensibility of engines in computing systems |
| US12423158B2 (en) * | 2016-03-31 | 2025-09-23 | SolidRun Ltd. | System and method for provisioning of artificial intelligence accelerator (AIA) resources |
| CN112035270A (zh) * | 2019-06-03 | 2020-12-04 | 北京京东尚科信息技术有限公司 | 接口适配方法、系统、装置、计算机可读介质及电子设备 |
| CN113722114B (zh) * | 2020-05-25 | 2024-12-31 | 北京达佳互联信息技术有限公司 | 一种数据服务的处理方法、装置、计算设备及存储介质 |
| CN114625471B (zh) * | 2022-03-30 | 2022-12-13 | 阿里巴巴(中国)有限公司 | 功能组件的展示方法以及装置 |
Citations (7)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20020133392A1 (en) * | 2001-02-22 | 2002-09-19 | Angel Mark A. | Distributed customer relationship management systems and methods |
| US20040158455A1 (en) * | 2002-11-20 | 2004-08-12 | Radar Networks, Inc. | Methods and systems for managing entities in a computing device using semantic objects |
| US20040194112A1 (en) * | 2003-03-28 | 2004-09-30 | Microsoft Corporation | Entity linking system |
| US20050027575A1 (en) * | 2003-07-30 | 2005-02-03 | International Business Machines Corporation | Customer relationship management system with compliance tracking capabilities |
| US20050114159A1 (en) * | 2003-11-25 | 2005-05-26 | Timucin Ozugur | Web based CRM service using on-line presence information |
| US20050204359A1 (en) * | 2004-03-12 | 2005-09-15 | Frank Beunings | Context objects for accessing message content |
| US20060150200A1 (en) * | 2004-12-03 | 2006-07-06 | Microsoft Corporation | Interface infrastructure for creating and interacting with web services |
Family Cites Families (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2001160006A (ja) * | 1999-12-03 | 2001-06-12 | Hitachi Ltd | メッセージ中継システム |
| US8392522B2 (en) * | 2003-10-30 | 2013-03-05 | Microsoft Corporation | Business inquiries and operations using messaging service |
-
2005
- 2005-11-30 US US11/290,078 patent/US7669205B2/en not_active Expired - Fee Related
-
2006
- 2006-06-30 CN CN2006800239355A patent/CN101213572B/zh not_active Expired - Fee Related
- 2006-06-30 EP EP06786233A patent/EP1899910A4/fr not_active Ceased
- 2006-06-30 JP JP2008520337A patent/JP5174661B2/ja not_active Expired - Fee Related
- 2006-06-30 WO PCT/US2006/026008 patent/WO2007005849A2/fr active Application Filing
- 2006-06-30 KR KR1020077030120A patent/KR101203284B1/ko not_active Expired - Fee Related
Patent Citations (7)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20020133392A1 (en) * | 2001-02-22 | 2002-09-19 | Angel Mark A. | Distributed customer relationship management systems and methods |
| US20040158455A1 (en) * | 2002-11-20 | 2004-08-12 | Radar Networks, Inc. | Methods and systems for managing entities in a computing device using semantic objects |
| US20040194112A1 (en) * | 2003-03-28 | 2004-09-30 | Microsoft Corporation | Entity linking system |
| US20050027575A1 (en) * | 2003-07-30 | 2005-02-03 | International Business Machines Corporation | Customer relationship management system with compliance tracking capabilities |
| US20050114159A1 (en) * | 2003-11-25 | 2005-05-26 | Timucin Ozugur | Web based CRM service using on-line presence information |
| US20050204359A1 (en) * | 2004-03-12 | 2005-09-15 | Frank Beunings | Context objects for accessing message content |
| US20060150200A1 (en) * | 2004-12-03 | 2006-07-06 | Microsoft Corporation | Interface infrastructure for creating and interacting with web services |
Non-Patent Citations (2)
| Title |
|---|
| International Search Report for PCT/US06/26008 mailed Jan. 10, 2007. * |
| Written Opinion for PCT/US06/26008 mailed Jan. 10, 2007. * |
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US8694375B2 (en) | 2011-09-30 | 2014-04-08 | Microsoft Corporation | Determining whether to display message to user in application based on user message viewing history |
Also Published As
| Publication number | Publication date |
|---|---|
| KR101203284B1 (ko) | 2012-11-20 |
| US20070006237A1 (en) | 2007-01-04 |
| JP5174661B2 (ja) | 2013-04-03 |
| CN101213572A (zh) | 2008-07-02 |
| EP1899910A4 (fr) | 2009-11-11 |
| WO2007005849A2 (fr) | 2007-01-11 |
| KR20080023695A (ko) | 2008-03-14 |
| CN101213572B (zh) | 2012-06-06 |
| JP2009500753A (ja) | 2009-01-08 |
| WO2007005849A3 (fr) | 2007-03-15 |
| EP1899910A2 (fr) | 2008-03-19 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| WO2007005849A2 (fr) | Utilisation de messages permettant d'etendre une fonctionnalite crm | |
| US8954952B2 (en) | Portable business process deployment model across different application servers | |
| JP5038314B2 (ja) | 属性を使用したプラグ可能な機能の識別およびフィルタリング | |
| US7836439B2 (en) | System and method for extending a component-based application platform with custom services | |
| US8484663B2 (en) | Method of deriving web service interfaces from form and table metadata | |
| US7770146B2 (en) | Computer software development incorporating core and compound services | |
| US9058571B2 (en) | Tool for automated transformation of a business process definition into a web application package | |
| US20040015564A1 (en) | Method of developing a web service and marketing products or services used in developing a web service | |
| EP1542123A2 (fr) | Procédé et système de génération automatique des interfaces de service pour une architecture orientée service | |
| JP2006252536A (ja) | レガシーコンポーネントのための動的サービスの生成 | |
| MX2007015887A (es) | Flujos de trabajos centricos de datos. | |
| US9800475B2 (en) | Message oriented construction of web services | |
| US7509398B2 (en) | System and method for protocol independent access and invocation of web services | |
| US10223108B2 (en) | System and method of reconstructing complex custom objects | |
| US20070005642A1 (en) | Modification of logic in an application | |
| EP1662383A2 (fr) | Architecture prescriptive pour développement dýapplication | |
| US9043384B2 (en) | Testing of client systems consuming contractual services on different server systems | |
| CA2544669C (fr) | Architecture normative assurant le developpement d'applications | |
| Ortiz et al. | Web service adaptation: A unified approach versus multiple methodologies for different scenarios |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| AS | Assignment |
Owner name: MICROSOFT CORPORATION, WASHINGTON Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:GHANAIE-SICHANIE, ARASH;TKATCH, ALEXANDER;WHITTENBERGER, KEVIN M.;AND OTHERS;REEL/FRAME:017116/0708;SIGNING DATES FROM 20051116 TO 20051122 Owner name: MICROSOFT CORPORATION,WASHINGTON Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:GHANAIE-SICHANIE, ARASH;TKATCH, ALEXANDER;WHITTENBERGER, KEVIN M.;AND OTHERS;SIGNING DATES FROM 20051116 TO 20051122;REEL/FRAME:017116/0708 |
|
| STCF | Information on status: patent grant |
Free format text: PATENTED CASE |
|
| FPAY | Fee payment |
Year of fee payment: 4 |
|
| AS | Assignment |
Owner name: MICROSOFT TECHNOLOGY LICENSING, LLC, WASHINGTON Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:MICROSOFT CORPORATION;REEL/FRAME:034543/0001 Effective date: 20141014 |
|
| FPAY | Fee payment |
Year of fee payment: 8 |
|
| FEPP | Fee payment procedure |
Free format text: MAINTENANCE FEE REMINDER MAILED (ORIGINAL EVENT CODE: REM.); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY |
|
| LAPS | Lapse for failure to pay maintenance fees |
Free format text: PATENT EXPIRED FOR FAILURE TO PAY MAINTENANCE FEES (ORIGINAL EVENT CODE: EXP.); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY |
|
| STCH | Information on status: patent discontinuation |
Free format text: PATENT EXPIRED DUE TO NONPAYMENT OF MAINTENANCE FEES UNDER 37 CFR 1.362 |
|
| FP | Lapsed due to failure to pay maintenance fee |
Effective date: 20220223 |