这门课程所使用的教材是 Jia Zhang 老师自己编写的 Services Computing,课程内容其实相对老旧,不过我之前没有 Java 方面的经验,这门课还是让我学到了很多。
Week 1
- Generations of SE:
- 1st generation: Waterfall model, structured design & analysis, compilers, OS, programming languages;
- 2nd generation: OO design & analysis, modeling;
- 3rd generation: SOC platform.
- Service operation models:
- Hosted service model;
- Business process outsourcing;
- Data-centered outsourcing;
- Services through online broker agency.
- Service charge models:
- Free-of-charge model;
- Fee-based model;
- Government service model.
- Service Level Agreement (SLA): Higher fee for higher quality of service. Support large user base and usage scenarios.
- Service lifecycle:
- Strategic planning & consulting;
- Service engagement;
- Service delivery;
- Service operation;
- Service billing;
- Service management.
- Clarifications:
- SOC is the umbrella, a discipline;
- SOA is the architectural model (overall software system design);
- Web service is the best enabling technology (to date).
- Others:
- IT-enabled service: Outsourcing of processes that can be enabled with information technology and covers diverse areas; Relationship between providers and consumers;
- Differences between business services and IT services: One is about business logics, the other can support multiple scenarios;
- Relationship between IT & non-IT services in a service ecosystem: Horizontal vs. vertical;
- Describe a typical service system: Inputs, outputs, goals, transformation, components, sensors.
Week 2
- XML:
- One of the most important difference between XML and HTML is that XML is content-oriented while HTML is presentation-oriented;
- XML is case-sensitive;
<![CDATA[<tag>Here goes the comment</tag>]]>
;- Each document must have a unique first element – the root node.
- DTD:
- DTD serves as grammar for the underlying XML document, and it is part of XML language;
- Example of DTD (PPT 3, Page 25);
- DTD can be both inside XML file or outside XML file.
- XML Schema:
- Grammar for specifying valid XML documents, uses XML as well;
- Example of XML Schema (PPT 3, Page 28);
- DTD can only check the grammar of XML, while XML Schema can check if it’s both well-formed and valid:
- DTD is not XML and terse;
- XML Schema is XML and verbose and powerful (extensible to additions, data types, namespaces).
- XML parsing:
- DOM: Load whole XML into memory, fast;
- SAX: Is better for large XML file, less memory.
- XPath is used to navigate through elements and attributes in an XML document. Example on (PPT 3, Page 52).
- XQuery is like the SQL to XML. Example on (PPT 3, 57).
- Others:
- JSON also has JSON Schema for validation;
- Same Origin Policy (SOP): Full access to same origin (network, documents, storage, cookies);
- XSLT (Extensible Stylesheet Language Transformations) is a language for transforming XML documents into other documents;
- XML data binding refers to the process of representing the information in an XML document as an object in computer memory.
Week 3
- REST (Representational State Transfer)
- Representational: Clients possess the information necessary to identify, modify, and/or delete a web resource;
- State: All state information is stored on the client;
- Transfer: State passed from client to server via HTTP;
- Everything in REST is considered as a resource.
- REST vs AJAX: REST can do operations (PUT, POST, GET, HEAD), while AJAX can only retrieve data from the back-end. AJAX can be a part of REST but REST can never be AJAX.
- Mashup:
- Pros: “lightweight” application, “lightweight” development, low costs for gathering data, rapid development;
- Cons: Dependency from data source, standards & versions, copyright, security;
- Development process: Component discovery and selection -> Composition and immediate deployment -> Use and evolution -> loop…
Week 4
- WSDL (Web Services Description Language): Service name, types of input parameters, types of output parameters…
- WSDL 1.1 example on PPT 5, Page 13;
- WSDL 2.0 example on PPT 5, Page 31.
- SOAP (Simple Object Access Protocol): Messaging protocol for transport with binding to existing Internet protocols like HTTP and SMTP.
- SOAP example on PPT 5, Page 21;
- Example of binding WSDL to SOAP on PPT 5, Page 24.
- BPEL (Business Process Execution Language):
- BPM (Business Process Management);
- Example on PPT 5, Page 47-62.
- Others:
- Web Services Resources Property (WSRP): Stateful;
- Web Services Interoperability (WS-I): To tackle the challenges of interoperability among Web services.
- Service provider creates, publishes, and operates services. Service customer uses services. Service broker helps service customer find interested services.
Week 5
- WSIL (Web services Inspection Language) example on PPT 6, Page 7.
- UDDI (Universal Description Discovery and Integration):
- Data model: businessEntity, businessService, bindingTemplate, tModel.
- UDDI Search Markup Language (USML) for supporting “Google” style services Search.
- Others:
- Advanced UDDI Search Engine (AUSE);
- Dynamic Service Discovery Framework (DSDF);
- The federated framework provides a uniform interface for both UDDI-based and WSIL-based service discovery.
Week 7
- Latent Dirichlet Allocation (LDA).
Others
- Pros of SOC: Reusability, interoperability.
- Services ecosystem: How all of the services can work together and what are their relationships.
- DTD:
<!DOCTYPE bookshelf [ <!ELEMENT bookshelf (book*)> <!ELEMENT book (author, content)> <!ELEMENT author (#PCDATA)> <!ELEMENT content (#PCDATA)> ]>
XML Schema:
<xs:element name="bookshelf"> <xs:complexType> <xs:sequence> <xs:element name="author" type="xs:string" /> <xs:element name="content" type="xs:string" /> </xs:sequence> </xs:complexType> </xs:element>
WSDL 1.1:
<message name="getCreditReq"> <part name="cardNum" type="xs:string" /> <part name="ssn" type="xs:string" /> </message> <message name="getCreditRes"> <part name="namw" type="xs:string" /> <part name="address" type="xs:string" /> <part name="accountBalance" type="xs:string" /> </message> <portType name="personalCredit"> <operation name="getCredit"> <input message="getCreditReq" /> <output message="getCreditRes" /> </operation> </portType>
WSDL 2.0:
<types> <schema> <element name="getCreditReq"> <complexType> <element name="cardNum" type="xs:string" /> <element name="ssn" type="xs:string" /> </complexType> </element> <element name="getCreditRes"> <complexType> <element name="name" type="xs:string" /> <element name="address" type="xs:string" /> <element name="accountBalance" type="xs:string" /> </complexType> </element> </schema> </types> <interface name="personalCredit"> <operation name="getCredit"> <input messageLabel="In" element="getCreditReq" /> <output messageLabel="Out" element="getCreditRes" /> </operation> </interface>
- UDDI data model:
- Business entity;
- Business service: service;
- Binding template: port;
- Technical models (tModel): service interface.
- UDDI for centralized web service publishing: Can’t dynamically updated; WSIL for distributed web service publishing: No uniform way to query a web service, and tModel is not stored in UDDI.
- <partnerLinkType> describes the way two business partners interact.
- Relations between service broker, service consumer and service provider:
- Service provider - WSDL (publish or announce) -> service broker;
- Service consumer - UDDI (find or discover) -> service broker;
- Service consumer <- SOAP (invoke or bind) -> service provider.
- BPEL supports long-running, stateful sequence, while WSDL supports a single, stateless model.